我有一个非常标准的 NavigationView。当我在标题中使用静态布局(如下所示)时,效果非常好。
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header"
app:menu="@menu/drawer_view"/>
但我想要一个动态标头,以便我可以在用户登录等时更改它...所以我尝试使用片段而不是 nav header.xml
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/fragment_header"
app:menu="@menu/drawer_view"/>
我可以在 headerLayout 中使用片段,以便可以处理片段的 java 文件中的所有逻辑吗?或者什么是处理这个问题的正确解决方案。
您可以在代码中通过膨胀自定义布局并设置其导航视图的标题来完成此操作。
NavigationView navigationView = (NavigationView) findViewById(R.id.navigationView);
View nav_header = LayoutInflater.from(this).inflate(R.layout.nav_header, null);
((TextView) nav_header.findViewById(R.id.name)).setText("UserName");
navigationView.addHeaderView(nav_header);
你不需要设置app:headerLayout
in xml.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)