通過一些實驗,我設法得到了我想要完成的部分。我不確定這是否是最好的方法,但它確實有效。
我發現微調器不顯示在屏幕最右側的原因是因爲該空間是爲菜單項保留的。如果你還記得,我沒有使用菜單項目的原因是因爲在較早的設備上,當你點擊菜單按鈕時,它會顯示屏幕底部的項目(不是我想要的)。但我找到了一個工作。
我首先創建我的菜單中的XML:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/spinner_menu_item"
android:showAsAction="always"
android:actionLayout="@layout/spinner" />
</menu>
和"@layout/spinner"
:
<?xml version="1.0" encoding="utf-8"?>
<com.actionbarsherlock.internal.widget.IcsSpinner xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/spinner_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
然後在onCreateOptionsMenu:
getSupportMenuInflater().inflate(R.menu.basic_menu, menu);
MenuItem item = menu.findItem(R.id.spinner_menu_item);
spinnerMenu = (IcsSpinner)item.getActionView();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MyActivity.this, android.R.layout.simple_dropdown_item_1line, menuItems);
spinnerMenu.setAdapter(adapter);
spinnerMenu.setOnItemSelectedListener(new IcsAdapterView.OnItemSelectedListener() {}
最後我overrided菜單按鈕,像所以:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
if (keyCode == KeyEvent.KEYCODE_MENU){
spinnerMenu.performClick();
return true;
}
return super.onKeyDown(keyCode, event);
}
這個不做的唯一的事情就是顯示一個圖標而不是單詞。但在那裏的一半!我希望這會幫助有人遇到類似的問題。
是的,這是正確的,我想了一下,併發布了我的答案。我現在面臨的唯一問題是顯示一個圖標而不是文本。謝謝! – chRyNaN
你可以製作你自己的下拉風格,並設置爲屬性** Style **。 –