2015-08-29 57 views
2

我有一個關於導航抽屜標題部分項目的問題。
其實我希望通過編程改變HeaderLayout一個TextView,下面是代碼:更改設計支持導航查看標題標題編程

drawer menu: <?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
<group android:checkableBehavior="all"> 
    <item 
     android:id="@+id/navItem1" 
     android:icon="@drawable/ic_home_drawer" 
     android:title="A"/> 
    <item 
     android:id="@+id/navItem2" 
     android:icon="@drawable/ic_gallery_drawer" 
     android:title="B"/> 

    <item 
     android:id="@+id/navItem3" 
     android:icon="@drawable/ic_exhibition" 
     android:title="C"/> 

    <item 
     android:id="@+id/navItem4" 
     android:icon="@drawable/ic_news_drawer" 
     android:title="D"/> 
    <item 
     android:id="@+id/navItem5" 
     android:icon="@drawable/ic_exit_drawer" 
     android:title="E"/> 
</group> 

這裏是導航標題XML:

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="256dp" 
android:theme="@style/ThemeOverlay.AppCompat.Dark" 
> 

<ImageView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:scaleType="centerCrop" 
    android:src="@drawable/nav_header" /> 

<ImageView 
    android:layout_width="match_parent" 
    android:layout_height="3dp" 
    android:layout_gravity="bottom" 
    android:scaleType="centerCrop" 
    android:src="@drawable/nav_header_bar" /> 

<TextView 
    android:id="@+id/nav_title" 
    android:layout_width="match_parent" 
    android:layout_gravity="top" 
    android:gravity="center" 
    android:text="IAMTEXT" 
    android:layout_height="wrap_content" /> 

我想編程改變這種:android:text="IAMTEXT"

+0

不知道我明白你想要做什麼。你能明確指出前後情況嗎?另外,你有什麼嘗試? – joepd

回答

1

在你的Java代碼:

  1. 使用findViewById(R.id.nav_title)找到TextView
  2. 使用setText()設置文本到TextView

例如,在您的MainActivity:

TextView navTitle = (TextView) findViewById(R.id.nav_title); 
navTitle.setText("This is a changed string."); 
+0

它工作,謝謝...有時候,簡單的方法是正確的方式。 –

+0

如果我想更改圖標怎麼辦? –

3

我假設您正在使用NavigationView

<android.support.design.widget.NavigationView 
    android:id="@+id/navigation_view" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    app:headerLayout="@layout/drawer_header" 
    app:menu="@menu/drawer_menu" /> 

好的。你可以從導航視圖中得到標題視圖

final NavigationView navigationView = (NavigationView) findViewById(R.id.navigation_view); 

View headView = navigationView.getHeaderView(0); 

((TextView) headView.findViewById(R.id.nav_title)).setText("New title");