我的申请有问题。我正在尝试对其进行更新,以便用户可以为应用程序选择自己的主题。但是,这意味着我必须将背景图像的设置从.xml文件移动到我的主题样式中的styles.xml
。我通过从我的xmls中删除android:background="@drawable/bg"
并将<item name="android:windowBackground">@drawable/bg</item>
添加到我的样式中来完成此操作。这在预览中看起来没问题但是一旦我在模拟器中运行它,每当我切换片段时,主片段的所有内容(在启动时加载)始终保持在后台...
我们,它们,零和所有按钮来自第一个片段,但由于某种原因仍然可以在这个片段中看到...
答案 0 :(得分:0)
这是因为你的片段都没有任何背景。因此,当您添加片段时,内容将彼此重叠。尝试设置片段的背景或者您可以使用替换而不是添加片段。
答案 1 :(得分:0)
像下面一样在style.xml中创建一个新主题
<style name="AppTheme.Fragment" parent="Theme.MaterialComponents.Light">
<item name="android:background">@drawable/bg_fragment</item>
</style>
然后在每个片段上应用如下主题
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
style="@style/AppTheme.Fragment">
<!-- your code here -->
</androidx.coordinatorlayout.widget.CoordinatorLayout>
现在,每当需要将片段背景更改为其他背景时,请修改android:background
主题中的style.xml
选项
@drawable/bg_fragment
如下
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@android:color/white" />
</shape>