我沒有自定義欄,我只是將一個刪除圖標設置爲操作欄,但現在我需要將OnClickListener設置爲此圖標。我怎麼能這樣做,沒有自定義欄是可能的。此外,左側的圖標不能顯示,我可以在右側進行設置嗎?將圖標添加到分段操作欄並獲取對它的引用
activity.getSupportActionBar().setIcon(R.drawable.ic_delete);
我使用導航抽屜,當我使用自定義欄的切換圖標絕望。
我沒有自定義欄,我只是將一個刪除圖標設置爲操作欄,但現在我需要將OnClickListener設置爲此圖標。我怎麼能這樣做,沒有自定義欄是可能的。此外,左側的圖標不能顯示,我可以在右側進行設置嗎?將圖標添加到分段操作欄並獲取對它的引用
activity.getSupportActionBar().setIcon(R.drawable.ic_delete);
我使用導航抽屜,當我使用自定義欄的切換圖標絕望。
看起來要設置ActionBar的home鍵爲您的刪除按鈕。我建議不要這樣做,因爲在我看來這是一個糟糕的設計決定。此外,您還希望通過使用菜單以直觀的方式顯示右側的按鈕。
請看看官方文件建立添加動作條行動here
基本上你需要添加一個XML菜單資源,並宣佈自己的行爲是這樣的:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_delete"
android:icon="@drawable/ic_delete"
android:title="@string/action_delete"
app:showAsAction="always"/>
</menu>
然後在你的活動覆蓋OnOptionsItemSelected方法:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_delete:
// Do your stuff here
return true;
default:
return super.onOptionsItemSelected(item);
}
}
actionBar.setDisplayHomeAsUpEnabled(true);
然後,你需要重寫活動方法:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onIconClicked();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
要在右側創建一個項目,你需要創建自定義菜單,其實,這很簡單。
Here是例子,如何做到這一點
該圖標僅適用於fragmet。 –
我已經修改了我的答案,現在應該更清楚了:) –