Добавьте customView в Android ActionBar в правой части - PullRequest
0 голосов
/ 12 октября 2018

Я новичок в 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 голосов
/ 12 октября 2018

Вы можете использовать тему NoActionBar, а затем добавить настроенную панель инструментов:

Чтобы сделать это, вам необходимо:

Установить тему NoActionBar в android_manifest.xml

<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

0 голосов
/ 12 октября 2018

Вам нужно всего лишь добавить 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>
...