不要在Android的MenuBar上显示图标

时间:2017-11-30 11:44:12

标签: android

我正在使用AndroidStudio构建应用程序。我想在我的应用程序中显示一个ActionBar。

我想在我的AppCompactActivity中添加一个菜单。这是菜单:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- Search, should appear as action button -->
    <item android:id="@+id/action_search"
        android:icon="@android:drawable/ic_menu_save"
        android:showAsAction="always"
        android:title="Salva"/>
</menu>

这是我可以在Android Studio预览中看到的布局。

enter image description here

这是我的AppCompactActivity:

public class setting extends AppCompatActivity{
    public Program program;
    public TextView textTargetUri;
    public TextView labelUrl;
    public ImageView targetImage;
    private static final int SELECT_PICTURE = 1;

    private String selectedImagePath;
    private ImageView img;
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.setting);
        img = (ImageView)findViewById(R.id.ImageView01);

    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu items for use in the action bar
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_setting, menu);
        return super.onCreateOptionsMenu(menu);
    }
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle presses on the action bar items
        switch (item.getItemId()) {
        case R.id.action_search:
            getSchermataHome();
            return true;
        default:
            return super.onOptionsItemSelected(item);
        }
    }
}

但这是我能看到的外行: enter image description here

我该如何解决?

2 个答案:

答案 0 :(得分:1)

尝试使用以下代码

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">


<item
    android:id="@+id/action_search"
    android:icon="@android:drawable/ic_menu_save"
    android:title="Salva"
    app:showAsAction="ifRoom|always"/>
</menu>

使用app属性

always更改为ifRoom|always

答案 1 :(得分:0)

将您的android:showAsAction="always"更改为app:showAsAction="always"

所以现在你的代码将是

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- Search, should appear as action button -->
    <item android:id="@+id/action_search"
        android:icon="@android:drawable/ic_menu_save"
        app:showAsAction="always"
        android:title="Salva"/>
</menu>
  

请注意,上面的showAsAction属性使用标记中定义的自定义命名空间。在使用支持库定义的任何XML属性时,这是必需的,因为旧设备上的Android框架中不存在这些属性。