我有一個拆分動作欄,頂部欄黑暗,底部欄(分割)較淺。如何知道Android操作欄的動作圖標是否位於頂部欄或底部欄(分割)?
因此,我想要顯示一個對比度動作圖標:頂部暗條中的光圖標和底部光條中的黑色圖標。
問題是知道是否應該在頂部或底部的欄上繪製動作。我怎麼知道?
另一種方法是瞭解操作欄是否當前已拆分。我如何知道這一點?
謝謝。
我有一個拆分動作欄,頂部欄黑暗,底部欄(分割)較淺。如何知道Android操作欄的動作圖標是否位於頂部欄或底部欄(分割)?
因此,我想要顯示一個對比度動作圖標:頂部暗條中的光圖標和底部光條中的黑色圖標。
問題是知道是否應該在頂部或底部的欄上繪製動作。我怎麼知道?
另一種方法是瞭解操作欄是否當前已拆分。我如何知道這一點?
謝謝。
簡單。你使用布爾值。默認情況下,如果屏幕寬度小於400dp,則會有一個拆分的ActionBar。因此,在你的價值觀文件夾,你可以把:
/values/bools.xml:
,並在你的價值觀,sw400dp你把以下內容。
/values-sw400dp/bools.xml:
<resources>
<bool name="split_action_bar">false</bool>
</resources>
現在,您可以根據該值設置你的圖標:
boolean isActionBarSplitted = getResources().getBoolean(R.bool.split_action_bar);
if(isActionBarSplitted){
// set light icon
}
else{
// set dark icon
}
編輯:
其實忘記我寫的東西,你不需要創建自己的布爾值來檢查它。已經有一個聲明(這是ActionBar用來確定它是手機設備還是平板電腦的)。 如果您的目標是Android HC +,那麼您可以訪問默認的ActionBars值: android.R.bool.split_action_bar_is_narrow
,如果您使用的是ActionBarSherlock: R.bool.abs_split_action_bar_is_narrow
。 找到here爲默認的ActionBar,here您的ABS。
這取決於您正在使用的庫。
對於新程序兼容性:檢查R.bool.abc_split_action_bar_is_narrow
值:
boolean split = getResources().getBoolean(R.bool.abc_split_action_bar_is_narrow);
對於ActionBarShelock:從庫中導入ResourcesCompat
類並調用:
boolean split = ResourcesCompat.getResources_getBoolean(this, R.bool.abs__split_action_bar_is_narrow);
如果你不」 t使用任何圖書館,那麼你可以去艾哈邁德的答案,但只有如果你不使用圖書館。這是因爲他們使用不同的值。如果寬度低於400dp,android框架似乎會拆分欄,但對於appcompat和ABS則爲480dp。
由於溢出圖標,使用對比條進行分割時出現困難。操作圖標可以更改,但溢出不能。看問題:http:// stackoverflow。com/questions/13934825/how-to-change-the-overflow-button-when-in-cab –