相关疑难解决方法(0)

允许外部触摸DialogFragment

Fragment在我的应用程序中显示了一个DialogFragment.
我在片段中有一个关闭对话框的按钮.但是当我显示dialogFragment时,对话框外部的触摸什么都不做,我无法单击对话框片段外的按钮.

如何为DialogFragment提供外部触摸?

android android-dialogfragment

14
推荐指数
2
解决办法
9334
查看次数

如何更改Dialog的默认黑色暗淡背景"颜色"(不是暗淡的数量)?

在此输入图像描述

(这是Dialog在互联网上显示找到的随机图像.)

我一直在实施自定义Dialog.我可以处理对话框上的几乎所有内容,除了对话框本身下的默认黑色暗淡背景,但是在它后面的整个屏幕上.基本上我想改变它的颜色和alpha值.

我一直在浏览StackOverflow,但我发现只有改变Dialog自身背景的答案.无论如何,如果你需要它,这是我的简单代码.

CustomDialog.java

public class HTDialog extends Dialog{

    public HTDialog(Context context, boolean cancelable, OnCancelListener cancelListener) {
        super(context, cancelable, cancelListener);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setCanceledOnTouchOutside(true);
        setContentView(R.layout.custom_dialog);
    }
}
Run Code Online (Sandbox Code Playgroud)

custom_dialog.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/dialog_root"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:minWidth="280dp"
    android:background="@drawable/bg_popup"
    android:paddingTop="20dp">

    <ImageView
        android:id="@+id/dialog_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:src="@drawable/icon" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

android dialog

13
推荐指数
1
解决办法
2万
查看次数

如何从活动中启动片段

我已经想从MainActivity启动我的RecipientFragment并将数据从MainActivity传递到Fragment.这是我实现的代码.但片段没有开始.

Bundle bundle = new Bundle();
bundle.putString(ParseConstants.KEY_FILE_TYPE, fileType);
RecipientsFragment keyfile = new RecipientsFragment();
keyfile.setArguments(bundle);
Fragment newFragment = new RecipientsFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.commit();
Run Code Online (Sandbox Code Playgroud)

我还想知道如何传递intent.setData并在Fragment中获取该数据.目前我有以下代码:

RecipientFragment

mMediaUri = getActivity().getIntent().getData();
Run Code Online (Sandbox Code Playgroud)

主要活动

Intent recipientsIntent = new Intent(this, RecipientsFragment.class);
        recipientsIntent.setData(mMediaUri);
Run Code Online (Sandbox Code Playgroud)

android android-fragments

9
推荐指数
4
解决办法
7万
查看次数