如何以编程方式更改工具栏内容?

时间:2016-02-10 13:19:52

标签: android android-toolbar

我正在尝试以编程方式更改工具栏内容。

现在工具栏有1个ActionMenuView和1个TextView: enter image description here

app_bar_transaction.xml:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar_transaction"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="#F6F6F6"
    app:popupTheme="@style/AppTheme.PopupOverlay" >

        <android.support.v7.widget.ActionMenuView
            android:id="@+id/menu_transaction"
            android:layout_width="wrap_content"
            android:layout_height="?attr/actionBarSize"
            android:layout_gravity="left" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:textColor="#5E5E5E"
            android:textStyle="bold"
            android:textSize="13sp"
            android:id="@+id/toolbar_title"
            android:gravity="center" />

</android.support.v7.widget.Toolbar>

我想将工具栏的内容更改为: enter image description here

如何以编程方式更改工具栏的内容?

2 个答案:

答案 0 :(得分:0)

在工具栏的旁边添加一个LinearLayout,如下所示

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_transaction"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="#F6F6F6"
app:popupTheme="@style/AppTheme.PopupOverlay" >

     <LinearLayout
           android:id=@+id/toolbar_item_container
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:orientation="horizontal" />

</android.support.v7.widget.Toolbar>

然后在Java文件中访问此类线性布局

Toolbar mToolbar = (Toolbar)findViewById(R.id.toolbar_transaction);
LinearLayout layoutToolbar = (LinearLayout)mToolbar.findViewById(R.id.toolbar_item_container);

现在使用此layoutToolbar添加或删除任何视图

layoutToolbar.addView(); and layoutToolbar.removeView();

答案 1 :(得分:0)

使用其id找到您的工具栏,然后使用toolbar.findViewById(R.id.view)获取工具栏中的视图;

实施例

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
ImageView imageInToolbar = (ImageView) toolbar.findViewById(R.id.myImageView);