Android 如何以编程方式设置片段的主题?

Android 如何以编程方式设置片段的主题?,android,fragment,themes,Android,Fragment,Themes,说明: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState){ View view = inflater.inflate(R.layout.fragment_contenedor_perfil_alumno, container, false); viewPagerr = view.findViewById(R.id.v

说明:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState){
    View view = inflater.inflate(R.layout.fragment_contenedor_perfil_alumno, container, false);

    viewPagerr = view.findViewById(R.id.view_pagerr);

return view;}
我一直在使用清单更改我的活动主题,或者在某些情况下,当我必须以编程方式使用个性化主题时。这就是我所做的:

setTheme(R.style.MyTheme);
我有一个切换片段的活动(片段A和片段B)。我需要以编程方式将主题A设置为片段A,将主题B设置为片段B

问题:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState){
    View view = inflater.inflate(R.layout.fragment_contenedor_perfil_alumno, container, false);

    viewPagerr = view.findViewById(R.id.view_pagerr);

return view;}
我已经意识到我用于活动的
setTheme
不适用于片段

当片段发生变化时,我尝试在活动中更改主题,但这不起作用

我能做些什么来解决这个问题

编辑:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState){
    View view = inflater.inflate(R.layout.fragment_contenedor_perfil_alumno, container, false);

    viewPagerr = view.findViewById(R.id.view_pagerr);

return view;}
我的“父亲”片段JAVA代码:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState){
    View view = inflater.inflate(R.layout.fragment_contenedor_perfil_alumno, container, false);

    viewPagerr = view.findViewById(R.id.view_pagerr);

return view;}

你可以用你想要的主题创建一个新的
充气器
,并用它充气片段的根

onCreateView()方法中

val inflater = LayoutInflater.from(ContextThemeWrapper(context, R.style.some_theme))
return inflater.inflate(R.layout.your_fragment_layout, parent, false)
对于Java

LayoutInflater themedInflater = LayoutInflater.from(new 
ContextThemeWrapper(context, R.style.some_theme));
View view = themedIinflater.inflate(R.layout.fragment_contenedor_perfil_alumno, container, false);

// ... your other code whatever that is

return view;

你为什么删除我的“感谢阅读”@Nikos=(嗨,托马斯,欢迎来到Stack Overflow。我编辑你的文章时没有恶意。这是编辑时的标准策略,删除称呼、感谢和其他与问题无关的内容。这使人们更容易只关注重要信息。更多信息:非常感谢编辑,但我是g我一直感谢人们阅读我的问题。它只有不到20个字符。对不起:(没关系!我从来没有编辑一个问题只是为了删除一个简单的谢谢;我通常先编辑格式和语法问题,如果有一些附加的“绒毛”当人们在这里提到感谢和问候时,我也会把它删除。它从来不是针对个人的,也从来不是恶意的。我完全理解你,兄弟,不要担心,再次感谢:)什么是“val”?是Kotlin(不是Java)。非常感谢@Froyo,但我发现了一些问题。第一个问题(也是最大的问题)我定义了一个“视图”,我用它来膨胀我的片段并按id查找视图。我发现的另一个问题是,您的最后一个代码通道有一个名为“parent”的参数,我的IDE无法解析它的符号。我用onCreateView的代码编辑了我的问题。我希望您能再次帮助我:(抱歉回答晚了。我仍然不知道如何使用您的代码。使用它意味着我将无法按id查找视图,就像我在代码中显示的那样。请帮助!@Froyo。我必须告诉您,我的IDE无法解析“parent”的符号。@TomasM我不知道您的变量名和其他内容。您必须根据它修改代码。