android – NavigationView如何处理动态标题内容

我有一个非常标准的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);

您不需要在xml中设置app:headerLayout.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...