Почему значок действия не отображается на панели действий - PullRequest
0 голосов
/ 14 сентября 2018

Я разрабатываю приложение для Android и хочу создать действие, размещенное на панели действий, которое отображается в виде значка. Я добавил drawable с разрешением 18x18px и создал меню с одним элементом, который является моим действием, как показано ниже:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".RelationsActivity">

<item
    android:id="@+id/action_show_profile"
    android:icon="@drawable/profile_icon_16"
    android:title="@string/action_show_profile"
    app:showAsAction="always" />

Как вы можете видеть, атрибут showAsAction установлен на "всегда", и он все еще не работает. Я пробовал с разными AppThemes и ничего не помогло. Там, безусловно, достаточно места для значка, потому что заголовок панели действий отключен:

getActionBar().setDisplayShowTitleEnabled(false);

Действие присутствует в раскрывающемся списке переполнения, как будто для значка нет места.

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018
implements AppCompatCallback

and use this code inside oncreate method

  //let's create the delegate, passing the activity at both arguments (Activity, AppCompatCallback)
        AppCompatDelegate  delegate = AppCompatDelegate.create(this, this);

        //we need to call the onCreate() of the AppCompatDelegate
        delegate.onCreate(savedInstanceState);

        //we use the delegate to inflate the layout
        //delegate.setContentView(R.layout.activity_sync_contact);


        toolbar = (Toolbar) findViewById(R.id.toolbar);
        toolbar.setNavigationIcon(R.drawable.ic_menu);// icon of navigation 
        toolbar.setTitle("Inbox");
        delegate.setSupportActionBar(toolbar);
0 голосов
/ 14 сентября 2018

используйте это

Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);

И этот метод тоже

 @Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.YOUR_MENU_FILE, menu);
    return true;
}
...