首页 > 解决方案 > 如何使片段背景透明?

问题描述

我正在使用带有 nav_graph 的 Android 导航组件,我想让所有片段的背景透明。我尝试使用以下资源中的代码:单击 活动它工作正常,但在片段背景中始终为白色。

public class SettingsFragment extends Fragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_settings, container, false);
    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        view.setBackground(new ColorDrawable(Color.TRANSPARENT));
    }
}

标签: javaandroid

解决方案


解决这个问题的最简单方法是在 XML 中设置 Fragment 的透明度。

您可以像这样定义透明颜色colors.xml<color name="transparent">#00000000</color>

然后像这样在您的 fragment.xml 中引用它:android:backgroundTint="@color/transparent"

此外,建议将 View-Altering 命令设置为onCreate().

您还可以在 中定义一个android:alpha="0"属性.xml来测试是否将背景颜色设置为透明。但我想这只会改变整个片段的不透明度,包括子元素。


推荐阅读