我正在使用Support Library v3 appcompat开发一个操作栏。设置选项不会溢出。相反,我需要从我的手机上按菜单然后设置即将到来......
以下是代码: main_activity_actions.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:myapp="http://schemas.android.com/apk/res-auto">
<!-- Search, should appear as action button -->
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:showAsAction="ifRoom"
myapp:showAsAction="ifRoom" />
<!-- Settings, should always be in the overflow -->
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:showAsAction="never" />
</menu>
配置:
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
MainActivity.java
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main_activity_actions, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.action_search:
Toast.makeText(this, "Search Clicked", Toast.LENGTH_SHORT).show();
return true;
case R.id.action_settings:
Toast.makeText(this, "Settings Clicked", Toast.LENGTH_SHORT).show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
知道为什么会这样吗?
答案 0 :(得分:2)
Actionbar
溢出按钮不会在设备上显示硬件菜单按钮,因为这是设计阻止的,
来自设计文档中的兼容性here
不显示带有传统导航硬件键的Android手机 屏幕底部的虚拟导航栏。相反, 菜单硬件密钥可以使用动作溢出。
你可以试试黑客,虽然强行显示溢出菜单,请看answer
答案 1 :(得分:1)
设置选项不会溢出。相反,我需要从我的手机中按菜单,然后设置即将到来
溢出。引用the documentation:
操作溢出中隐藏了无法放入操作栏或不够重要的操作。用户可以通过按右侧的溢出按钮(或设备菜单按钮,如果可用)来显示其他操作的列表。