gpt4 book ai didi

Android DialogFragment - 如何以编程方式更改带有圆角的对话框 fragment 的颜色

转载 作者:行者123 更新时间:2023-11-29 19:10:28 24 4
gpt4 key购买 nike

对此进行了相当多的调查,但我对图层列表的体验仍然很差。这是我的 xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="10dip"/>
<padding
android:bottom="2dip"
android:left="8dip"
android:right="8dip"
android:top="2dip"/>
</shape>
</item>

<item
android:id="@+id/dialog_bg">
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF"/>
<stroke
android:width="16dip"
android:color="#FFFFFF"/>

<padding
android:bottom="2dip"
android:left="8dip"
android:right="8dip"
android:top="2dip"/>
</shape>
</item>
</layer-list>

我对如何执行此操作有正确的想法吗?

我想使用这个 java 方法:

getDialog().getWindow().setBackgroundDrawableResource(R.drawable.rounded_corners_dialog);

但是我将如何在稍后的代码中更改它的颜色?

谢谢,

T

最佳答案

您可以将 CardView 作为自定义 DialogFragment 布局的父容器。这是一个简单的例子:

custom_dialog.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:cardCornerRadius="8dp"
app:cardElevation="10dp"
app:cardUseCompatPadding="true">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
//Put all your views here

</LinearLayout>
</android.support.v7.widget.CardView>

现在在扩展 DialogFragment 的类中重写 onCreateDialog,如下所示:

@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Dialog dialog = super.onCreateDialog(savedInstanceState);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
return dialog;
}

现在,稍后您可以创建一个圆角,并且可以更改 CardView 的背景颜色。试一试:)

关于Android DialogFragment - 如何以编程方式更改带有圆角的对话框 fragment 的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45557319/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com