我想在我的Android應用程序的選項菜單使用AppCompatActivity添加「微調」的其餘部分。的Android:請微調動作條中具有相同的外觀/風格的動作欄項目
在我準備的示例中,我希望微調器顯示下拉列表選項列表,如「所有/成功/失敗」。
以下在StackOverflow的其他位置找到的說明,我可以將微調器添加到操作欄,但看起來很奇怪。我希望微調器能夠匹配動作欄項目的外觀,這在我的情況下意味着動作欄上的標題應該是白色的,當我點擊微調器時,彈出框應該有白色背景和黑色測試,就像溢出選項菜單。
請參閱下面的屏幕截圖,瞭解我目前的外觀。
Image of collapsed and expanded spinner menu item
正如你所看到的,問題是,微調選擇顯示出來的黑色,當動作條項目的其餘均爲白色。同樣,點擊微調框時,下拉菜單中的項目有黑色背景,黑色文本,而其餘菜單項(例如,溢出菜單),背景爲淺色,黑色文本。
第1步:添加菜單項在菜單XML:
<item android:id="@+id/spinner"
app:showAsAction="always"
android:title="Filter"
app:actionViewClass="android.widget.Spinner" />
第2步:在我的活動(在此這種情況下
我已經通過以下操作添加此微調片段)菜單擴展代碼,增加了以下:
String [] adapterValues = new String[]{"All", "Successful", "Failed"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, adapterValues);
MenuItem item = menu.findItem(R.id.spinner);
Spinner spinner = (Spinner) MenuItemCompat.getActionView(item);
spinner.setAdapter(adapter);
解決方案試圖:
在我的陣列適配器因此,而不是使用默認的微調佈局,我創建的,如下圖所示提供我的老闆佈局:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), R.layout.actionbar_spinner_filter, R.id.spinner_text, adapterValues);
以及相應的佈局文件是:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="16dp"
android:background="@android:color/white"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/spinner_text"
/>
</LinearLayout>
這給了我以下結果,正如你所看到的,這些很奇怪。
Image of collapsed and expanded spinner menu
問題摘要:
- 這是增加一個選項菜單我AppCompatActivity爲「下拉菜單」效果的最佳途徑?
- 什麼是我可以用來確保微調菜單的外觀與摺疊時的操作欄相匹配的最佳方式,以及何時展開,它與操作欄中彈出項目的其餘部分(例如溢出菜單)?
感謝
只是一個問題:您是否嘗試在actionbar_spinner_filter.xml中的TextView的width屬性中添加fill_parent? – zkminusck
** zkminusck **:謝謝您的建議。我更新了佈局以使textviews填充整個彈出窗口,並更新了我的問題中的截圖。我當初的問題仍然需要回答,但至少這部分是固定的。 –