6
當我跑我打電話的方法來檢查,如果應用程序正在在平板電腦上使用運行我的Android應用程序:設置主題Programmactically原因黑色背景
public boolean isTablet(Context context){
boolean xlarge = ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == 4);
boolean large = ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK)== Configuration.SCREENLAYOUT_SIZE_MASK);
return(xlarge || large);
}
如果該方法返回true(即該設備滿足這些條件之一)
我通過設置我的主題,對話主題:
setTheme(R.style.MyTheme);
其中MyTheme
是從父繼承主題
這個邏輯工作正常,但它在後臺給我一個奇怪的效果。呼叫意圖完全變黑,而如果我只是在清單中設置主題,背景只會略微變灰。
更新 - 代碼添加
private Context mClassContext = this;
@Override
public void onCreate(Bundle savedInstanceState){
if(isTablet(mClassContext)){
setTheme(R.style.MyTheme);
}
super.onCreate(savedInstanceState);
setContentView(R.layout.myLayout);
}
如何複製呢?
你在'SetTheme'之前'SetContentView()'? – kaderud
是的,我應該把它移到這之後嗎?我現在發佈我的'onCreate()' –
我把代碼移到了'setContentView()'之後,它沒有設置我的主題。我之前嘗試過。如果你想要設置主題,你必須在調用'setContentView()'之前完成它。我只是不明白爲什麼背景完全變黑。 –