我想在导航抽屉菜单中添加一个按钮,如下所示:
所需结果:
我尝试使用actionLayout参数实现这一目标,但似乎只能在右侧使用一些空间,而不能使用整个宽度:
当前结果:
标题似乎占据了左侧的空白。 但是我想像第一张图片一样添加一个全角按钮。
我当前的代码:
...
<item
android:id="@+id/nav_login"
android:title=""
app:actionLayout="@layout/button_login"
app:showAsAction="ifRoom"/>
...
button_login.xml
<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:background="#0000ff"
android:text="Login"
android:textColor="#ffffff"
android:layout_height="match_parent" />
答案 0 :(得分:0)
抽屉中的操作视图旨在在菜单项的右侧显示此“小”附加视图,因此将限制其大小。
您可以将所需按钮添加为某种页脚,如下所示:
<android.support.design.widget.NavigationView
android:id="@+id/drawer"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:menu="@menu/drawer">
<Button
android:id="@+id/footer_item_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:text="Footer Button 1" />
</android.support.design.widget.NavigationView>
请注意,如果您想要更多的视图,则可以将所有想要的内容放在子视图中-只需在此处添加LinearLayout
并将所有其他视图作为它的子视图即可。
答案 1 :(得分:0)
我的解决方案现在使用MaterialDrawer Library。
我刚刚做了一次快速测试,就解决了这个问题:
代码:
...
Drawer drawer = new DrawerBuilder()
.withActivity(this)
.withToolbar(findViewById(R.id.toolbar))
.addDrawerItems(
new PrimaryDrawerItem().withName("Entry 1"),
new PrimaryDrawerItem().withName("Entry 2"),
new AbstractDrawerItem() {
@Override
public RecyclerView.ViewHolder getViewHolder(View v) {
return new RecyclerView.ViewHolder(v) {
};
}
@Override
public int getType() {
return 0;
}
@Override
public int getLayoutRes() {
return R.layout.button_a;
}
@Override
public Object withSubItems(List subItems) {
return null;
}
@Override
public Object withParent(IItem parent) {
return null;
}
},
new PrimaryDrawerItem().withName("Entry 3")
)
.build();
...
button_a.xml
<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_width="match_parent"
android:text="Login"
android:layout_height="50dp"/>