2014-07-16 72 views
2

可以刪除主題和windowContentOverlay標籤的ActionBar陰影,但可以在運行時動態刪除並從代碼中重新添加它嗎?在運行時以編程方式刪除ActionBar陰影

同樣的問題here,它沒有得到任何解決的答案。

+0

爲什麼不您是否創建並使用自定義操作欄?那麼你可以做任何你想要的東西 –

+0

嗯,我不知道你的意思是自定義操作欄,但替代方案是從主題中刪除陰影,然後手動添加自定義陰影的地方我需要它。但是這不是很方便,應該有一種方法來以編程方式刪除默認的。 – Jakob

回答

0

掙扎了一會兒後,我能寫API> 21的解決方案:

private ActionBar actionBar; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle instance) { 
    // ... 

    actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar(); 

    return view; 
} 

@Override 
public void onResume() { 
    super.onResume(); 

    if (actionBar != null) { 
     actionBar.setElevation(0); 
    } 
} 

@Override 
public void onPause() { 
    super.onPause(); 

    if (actionBar != null) { 
     actionBar.setElevation(getResources().getDimension(R.dimen.toolbar_elevation)); //8dp 
    } 
} 

希望這個答案可以通過某種方式幫助你,雖然有一些,而你問的是: