2016-09-08 38 views
-1

我想要将操作栏标题以编程方式更改为任何文本。 我使用程序兼容性V7 这里是我的代码:如何在appcompat v7库上更改操作栏标题

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View actionBarview = inflater.inflate(R.layout.action_bar, null); 

    ActionBar actioBar = getSupportActionBar(); 
    actioBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); 
    actioBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
    actioBar.setCustomView(actionBarview, new ActionBar.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 
    final DrawerLayout drowerlayout = (DrawerLayout) findViewById(R.id.drawerlayout); 

我想:actioBar.setTitle( “MYTEXT”);

但是什么也没有发生。

这里是我的自定义动作条的xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="48dp" 
    android:layout_gravity="right" 
    android:background="#bfbfbf" 
    android:gravity="right" 
    android:orientation="horizontal" > 

    <TextView 
     android:id="@+id/TextView01" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="0.1"/> 

    <TextView 
     android:id="@+id/txtBName" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:text="......" 
     android:textColor="#000" /> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="0.1"/> 

    <Button 
     android:id="@+id/btnMenu" 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:gravity="center" 
     android:text="menu" /> 

回答

1

由于您正在为您设置自定义视图,因此设置标题setTitle()无法正常工作,相反,您将不得不放弃自定义并坚持使用默认的操作栏视图,或者必须在您的自定义中包含TextView可以得到一个参考,并将其文本设置为任何您的标题。

如果设置customView需要你的情况这里是你怎么会有去做......

View actionBarview = inflater.inflate(R.layout.action_bar, null); 
TextView tvTitle = (TextView) actionBarview.findViewById(R.id.tv_title) 
tvTitle.setText(<your title here>) 

记得tv_title应该在你的自定义视图XML作为TextView部件。后来在代码中,您可以参考tvTitle更改您的操作栏标题

+0

谢谢,我更新了问题并添加了xml代码。我将textview id设置为txtBName这是你的意思吗? – Alfi

+0

它的工作完美!谢谢! – Alfi

+1

任何时候bro,只要确保遵循谷歌标准,同时使用自定义视图的actionBar,也采取了使用工具栏而不是actionBar作为其最新的替代actionBar –

相关问题