[英]Fragments with different themes
我在尝试在运行时更改Android Activity的主题时遇到了麻烦。
这就是我要归档的内容:我有一个包含三个片段的活动(MainActivity)。 这些片段中的两个应该有一个工具栏和一个普通的状态栏,但是第三个应该没有工具栏,并且应该有一个透明的状态栏,其后面是内容。 因此,我创建了两种样式:带有工具栏等的普通AppTheme和没有样式的另一种称为全屏的样式。 现在,切换片段时主题应该会改变。
我尝试过在膨胀一个新片段后才更改主题,但这没有用(显然)。
我也看到了这个问题和其他一些问题,它们几乎都包含了相同的答案,这对我不起作用。
我真的希望你们中的一个能有所帮助!
谢谢
好了,您可以修改Activity
主题,然后recreate
它以查看其效果
class YourActivity{
boolean isThirdFragmentVisible;
...
public void onNavigateToThirdFragment(){
setTheme(<full screen theme>);
isThirdFragmentVisible = true;
recreate();
}
...
public void onCreate(){
if(isThirdFragmentVisible){
showThirdFragment();
}
}
...
}
任何片段都可以访问附加的活动。 因此,片段可以设置任何活动属性,例如工具栏和状态栏。
例:
状态栏:
在onViewCreated回调中,您可以将此模式设置为不显示状态栏:
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN)
要在其他片段中显示状态栏,可以用相同的方式设置它:
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)
工具列:
同样,可以使用setSupportActionBar
活动方法通过任何片段来设置工具栏。 详细信息> https://developer.android.com/training/appbar/setting-up.html#add-toolbar
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.