在右侧的Android ActionBar中添加customView

时间:2018-10-12 12:33:58

标签: java android android-studio android-actionbar

我是android的新手,对自定义操作栏的了解不多。

我想在操作栏的右侧添加一个标签

我尝试了多种解决方案,但没有一个对我有用

我尝试添加menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
    android:id="@+id/action_settings"
    android:orderInCategory="1"
    android:title="Text"
    app:actionLayout="@layout/add_note_count"
    app:showAsAction="never"/>
</menu>

2。在主应用程序活动中

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    getMenuInflater().inflate(R.menu.main, menu);
    return super.onCreateOptionsMenu(menu);
}

我也试图添加这样的自定义布局

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">

 <Button
    android:id="@+id/logout_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:gravity="center_vertical"
    android:text="Text" />
  </RelativeLayout>

menu.xml这样的

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
    android:id="@+id/toolbar_right_button"
    android:orderInCategory="1"
    android:title="Text"
    app:actionLayout="@layout/add_note_count"
    app:showAsAction="ifRoom|withText"/>

我也尝试了另一种解决方案,但是什么也没得到

能请你帮我还是帮我

真的很有用

谢谢

2 个答案:

答案 0 :(得分:0)

您只需在TextView标签内添加Toolbar
使用以下代码格式,可以根据需要选择添加必需的属性

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

        <android.support.v7.widget.AppCompatTextView
            android:id="@+id/optionTextView"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="end"
            android:gravity="center_vertical"
            android:text="@string/someText"                
             />
    </android.support.v7.widget.Toolbar>

答案 1 :(得分:0)

您可以使用NoActionBar主题,然后添加自定义的工具栏:

为此,您必须:

在android_manifest.xml中设置NoActionBar主题

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/Theme.AppCompat.NoActionBar">

在要使用它的活动中添加工具栏小部件,在我的情况下是activity_main:

<android.support.v7.widget.Toolbar
    android:id="@+id/my_toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:elevation="4dp"
    android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" >

    <android.support.v7.widget.AppCompatTextView
        android:id="@+id/prova"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="end"
        android:gravity="center_vertical"
        android:text="someText"
        />
</android.support.v7.widget.Toolbar>

然后在onCreate with Java活动中添加工具栏:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
    setSupportActionBar(myToolbar);
}

您必须导入android.support.v7.widget.Toolbar,否则最后的代码将产生构建错误。

您可以在https://developer.android.com/training/appbar/actions

获得更多信息