我希望setTheme
在运行时参与活动,我已经通过谷歌搜索了一些解决方案。
有人说在onCreate和setContentView之前调用setTheme
可以工作,代码部分就像
public void onCreate(Bundle savedInstanceState) {
setTheme(android.R.style.Theme_Translucent_NoTitleBar);
super.onCreate(savedInstanceState);
...
setContentView(...)
}
但它不起作用,我想知道,还有另一个解决方案可以将主题设置为活动吗?
答案 0 :(得分:16)
试试这个 - 在super.onCreate(savedInstanceState);
之后和setContentView(...)
如下面的代码 -
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setTheme(android.R.style.Theme_Translucent_NoTitleBar); // Set here
setContentView(...)
}
答案 1 :(得分:7)
实际上,如果我在调用super.onCreate(savedInstanceState);
public void onCreate(Bundle savedInstanceState)
{
final int themeRes = getIntent().getIntExtra(EXTRA_THEME_ID, 0);
if (themeRes != 0) setTheme(themeRes);
super.onCreate(savedInstanceState);
//ect...
}
答案 2 :(得分:3)
setContentView(...);
setTheme(R.style.MyTheme);
setContentView(...);
它必须运作良好..
有关主题的更多信息,请阅读此内容 http://entertheinfinity.blogspot.in/2016/06/designing-android-interface-themes.html
答案 3 :(得分:0)
要在运行时设置主题并解决“黑色背景”问题:
主题应该设置在manyPaths.forEach(function (element){
var signature = crypto.createHmac('sha256', apiSecret).update(verb + element.path + expires).digest('hex');
var headers = {
'content-type' : 'application/json',
'Accept': 'application/json',
'X-Requested-With': 'XMLHttpRequest',
'api-expires': expires,
'api-key': apiKey,
'api-signature': signature
};
const requestOptions = {
headers: headers,
url:'https://testnet.bitmex.com'+element.path,
method: verb
};
request(requestOptions, function(error, response, bodyResponse) {
if (error) {
console.log(error);
} else {
console.log(bodyResponse);
bodyResponse=JSON.parse(bodyResponse);
res.render("index", {bodyResponse:bodyResponse});
}
});
});
之前。
onCreate()
android清单中透明活动的主题应该设置为具有透明背景的任何主题(例如对话框主题)。
这告诉Android OS继续在透明活动后面绘制活动,以免最终不会出现黑色背景。
我正在使用public void onCreate(Bundle savedInstanceState) {
setTheme(android.R.style.Theme_Translucent_NoTitleBar);
super.onCreate(savedInstanceState);
...
setContentView(...)
}
;我需要使用AppCompatActivity
主题:
AppCompat