- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用通过 BaseActivity 实现的多个 Activity (不使用 fragment )实现 MaterialDrawer(MikePenz 库)时遇到问题。另外,使用 ButterKnife 绑定(bind) View 。
在 SO 中找到相关问题并一一尝试,但就我而言,它不起作用,因为它们中的大多数使用带有 fragment 的标准抽屉导航,或者它们与 ButterKnife 无关。
代码:
MainActivity类
public class MainActivity extends AppCompatActivity {
@BindView(R.id.toolbar)
Toolbar toolbar;
private List<TestModel> destinations;
private DestinationAdapter mAdapter;
ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
setSupportActionBar(toolbar);
navManagement();
}
}
activity_main布局
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/maincontainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.tvs.ui.MainActivity">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"
/>
</android.support.design.widget.AppBarLayout>
</android.support.constraint.ConstraintLayout>
商店 Activity
public class StoresActivity extends MainActivity {
@BindView(R.id.searchEditText)
EditText mSearchEditText; // errorRequired view 'searchEditText' with ID 2131558557 for field 'mSearchEditText' was not found
@BindView(R.id.storesRecyclerView)
RecyclerView recyclerView; // here too
private List<TestModel> stores;
private StoreAdapter mAdapter;
//endregion
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_stores);
ButterKnife.bind(this);
loadRecyclerView();
testData();
}
}
activity_store布局
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/searchEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
/>
<android.support.v7.widget.RecyclerView
android:id="@+id/storesRecyclerView"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:scrollbars="vertical">
</android.support.v7.widget.RecyclerView>
</android.support.constraint.ConstraintLayout>
我知道错误原因是当 Layout 膨胀但继承的 Activity 中的 View 未膨胀时,会调用 MainActivity 中的 ButterKnife.Bind 。抽屉导航已加载,但在单击项目时,它会失败,原因很明显。我无法使用 FrameLayout,因为我使用的是 MaterialDrawer 库,它没有(或者我不知道)有要膨胀的 View 。
我尝试了几种广泛搜索的方法,例如 SO1 SO2 Git Git2 Link但没有成功。
非常感谢任何帮助。提前致谢。
最佳答案
感谢@mikepenz 的回复。
发布它,因为它可能对某人有帮助
通过在 BaseActivity 中创建抽象方法解决了该问题
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayoutResourceId());
ButterKnife.bind(this);
setSupportActionBar(toolbar);
navManagement();
}
protected abstract int getLayoutResourceId();
具体 Activity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_stores); not required
ButterKnife.bind(this);
loadRecyclerView();
testData();
}
@Override
protected int getLayoutResourceId() {
return R.layout.activity_stores;
}
请注意,我没有在具体 Activity 中使用 ButterKnife.Bind,而是使用了 @Nullable 字段。但目前在基础 Activity 和实现 Activity 中都有绑定(bind)。
关于java - 将 Butterknife 与 BaseActivity/Child Activity 和 MaterialDrawer 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45490875/
我正在使用MaterialDrawer迈克·彭茨 (Mike Penz) 的图书馆。 我制作了一个 AccountHeader,现在想知道如何添加这样的“添加帐户”按钮(见图)。是否已经提供了如何执行
我使用MaterialDrawer迈克·彭茨 (Mike Penz) 的图书馆。 在我的 OnCreate 中,配置文件从 linkedHashMap 添加到抽屉中。选择配置文件后,新选择的配置文件将
我正在尝试弄清楚如何通过https://github.com/mikepenz/MaterialDrawer自定义MaterialDrawer 目前宽度太大。我想用更大的图标缩小宽度以覆盖空间并更改背
这个问题非常具体 https://github.com/mikepenz/MaterialDrawer定制。 我需要按如下方式自定义我的帐户标题: 任何时候都只有一个帐户 点击标题(整个区域)应该给我
所以我尝试为我的 Android 应用构建一个 MaterialDrawer 侧边栏。但是当抽屉打开时,我的应用程序崩溃了……有什么想法吗?我的崩溃日志如下所示: Caused by: java.la
如何在 MaterialDrawer 中创建自定义 DrawerItem(1. 我需要切换 2. 我需要 bool 状态指示器)图书馆? Here MaterialDrawer 作者说,创建自定义 D
我使用了从github下载的material drawer lib项目https://github.com/mikepenz/MaterialDrawer 按照我的代码 final Toolb
如何删除 Mikepenz Material Drawer 空间。我为配置文件菜单和抽屉项目使用了自定义布局。我没有为这些 View 设置边距或填充。我还尝试将 Activity 水平边距设置为 0。
在我的 android 应用程序中,我使用 greeDAO ORM for sqlite。所以我检索了我的类别列表: List categories = articleCategoryDao.que
我怎么放MaterialDrawer ActionBar 上方的菜单?现在,当我打开 MaterialDrawer 菜单时,我的 ActionBar 就在它上面。 CSS 中有类似 Z-index 的
我正在尝试将 mikepenz 的 Material Drawer 添加为第三方项目。我想将它添加为项目的原因(不仅仅是编译为依赖项)以便我可以根据我的要求修改抽屉的 UI。但是我无法成功同步我的 g
我使用MaterialDrawer迈克·彭茨的图书馆。 (版本6.0.0) 我的抽屉包含一个 ExpandableBadgeDrawerItem(ID=1)和一个 secondaryDrawerIte
我使用 Mike Penz 的 MaterialDrawer 并且我遇到了问题。我有 Activity (AppCompat) 和 3 Fragmnts。 Activity 包含所有 fragment
我需要构建自己的 AccountHeaderBuilder 实现。 所以我正在尝试从 MaterialDrawer 扩展一个类图书馆。在 Android Studio 中,我需要如何进行才能做到这一点
我试图以编程方式更改 StatusBar 颜色,但没有成功。我正在使用 MaterialDrawer用于创建抽屉导航的库。 尝试了我在互联网上找到的不同解决方案,但没有一个有效,状态栏总是显示 pri
我正在使用库 MaterialDrawer ( https://github.com/mikepenz/MaterialDrawer )。 我想像 Foursquare 过滤器一样使用右侧的侧边栏作为
我在 expandableItem 中显示徽章。当用户单击该项目时,我希望 expandableItem 中的徽章消失,只在子项目中显示徽章。但是在我的代码中,当我点击时,徽章消失但子项目没有显示。我
我在使用通过 BaseActivity 实现的多个 Activity (不使用 fragment )实现 MaterialDrawer(MikePenz 库)时遇到问题。另外,使用 ButterKni
我正在尝试添加此Library 但是当同步Android Studio项目时出现以下错误.. 错误:(58,13)无法解决:com.mikepenz:materialdrawer:4.3.5 我为此感
我是一名优秀的程序员,十分优秀!