我将此代码用于导航抽屉
<android.support.v4.widget.DrawerLayout 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/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
android:visibility="visible">
<include
layout="@layout/menu"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.NavigationView>
menu.xml文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context="ir.app.ir.live24.MainActivity"
android:clickable="false"
android:gravity="center"
android:background="#fff">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/textView3"
android:textColor="#000" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/textView4"
android:textColor="#000"
android:layout_weight="0.5" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/textView5"
android:textColor="#000" />
</LinearLayout>
</RelativeLayout>
在视图中android studio工作正确: http://i65.tinypic.com/wtvu4k.jpg
但是在发布后的设备中,菜单顶部已经消失: http://i68.tinypic.com/2nu0ub5.jpg
下一个问题:可点击不适用于菜单
请帮帮我
答案 0 :(得分:1)
您不应该添加菜单布局:在navigationView中,您可以直接添加菜单..使用app:menu="@menu/menu_navigation"
使用此布局:
<android.support.v4.widget.DrawerLayout 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/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<include
layout="@layout/menu"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
app:menu="@menu/menu_navigation" //menu items in drawer
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
android:visibility="visible"></android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>
现在在res / menu / menu_navigation中添加菜单项,如:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/profile"
android:icon="@drawable/profile_icon"
android:title="Profile" />
<item
android:id="@+id/settings"
android:icon="@drawable/settings_icon"
android:title="Settings" />
<item
android:id="@+id/about_us"
android:icon="@drawable/about_us"
android:title="About us" />
</group>
</menu>
以下是完整的Example
答案 1 :(得分:1)
#问题1:菜单顶部已经消失。
1。将android:paddingTop="24dp"
添加到menu
容器RelativeLayout
以显示top
菜单TextView
。
2。将android:background="?attr/selectableItemBackground"
添加到TextView
,以便在ripple effect
上显示click
。
更新menu.xml
,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:clickable="false"
android:gravity="center"
android:paddingTop="24dp"
android:background="#fff">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="New Text"
android:textColor="#000"
android:background="?attr/selectableItemBackground"/>
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="New Text"
android:textColor="#000"
android:layout_weight="0.5" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="New Text"
android:textColor="#000"
android:background="?attr/selectableItemBackground"/>
</LinearLayout>
</RelativeLayout>
仅供参考,我已将android:padding="16dp"
添加到所有TextView中以提供适当的缩进。
#问题2:点击不适用于菜单。
将onClick
监听器设置为TextView
以处理click
个事件:
// From Activity onCreate() method
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
........................
...............................
TextView textView3 = (TextView) findViewById(R.id.textView3);
textView3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getApplicationContext(), "Clicked", Toast.LENGTH_SHORT).show();
}
});
}
<强>输出:强>
希望这会有所帮助〜