我想以编程方式将Actionbar标题更改为任何文本。 我使用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" />
答案 0 :(得分: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
来更改操作栏标题