我想以编程方式更改NavigationView标题背景,但得到的东西不是我想要的。
这是MainActivity我试图以这种方式改变导航标题背景:
View header = navigationView.getHeaderView(0);
tv_nav_header = (TextView)header.findViewById(R.id.text_nav_header);
tv_nav_header.setText(username);
tv_nav_header.setBackground(drawable);
这是我的nav_header.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="160dp">
<cn.xyz.util.CircleImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginTop="40dp"
android:layout_marginStart="10dp"
android:src="@mipmap/ic_launcher" />
<TextView
android:id="@+id/text_nav_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="55dp"
android:layout_marginStart="70dp"
android:text="tempLocalUser"
android:textColor="#FFFFFF"
android:background="@android:color/transparent"/>
</RelativeLayout>
activity_main.xml中
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<FrameLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="100" />
<android.support.design.widget.NavigationView
android:id="@+id/navigation"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/nav_header"
app:menu="@menu/nav_drawer" />
</android.support.v4.widget.DrawerLayout>
像这样的实际节目,这不是我想要的
enter image description here
以下是我想要的,这是由nav_header.xml RelativeLayout attr
实现的机器人:背景=&#34; @颜色/ colorPrimary_blue&#34;
答案 0 :(得分:0)
您正在为TextView设置背景颜色。而是尝试在RelativeLayout上设置颜色。请尝试以下方法 -
View header = navigationView.getHeaderView(0);
header.setBackground(drawable);
tv_nav_header = (TextView)header.findViewById(R.id.text_nav_header);
tv_nav_header.setText(username);
tv_nav_header.setBackground(drawable);