为什么动作图标未显示在动作栏上

时间:2018-09-14 13:21:30

标签: android android-actionbar icons overflow action

我开发了android应用程序,我想创建放置在显示为图标的操作栏上的操作。我添加了一个分辨率为18x18px的drawable,并创建了一个菜单项,这是我的动作,如下所示:

<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属性设置为“ always”,并且仍然不起作用。我尝试使用不同的AppThemes,但没有任何帮助。当然有足够的空间来禁用图标cuz操作栏标题:

getActionBar().setDisplayShowTitleEnabled(false);

该操作显示在溢出下拉菜单中,就像该图标没有空间一样。

2 个答案:

答案 0 :(得分:0)

使用此

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

还有这种方法

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

答案 1 :(得分:-1)

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);