问题标签 [android-dialogfragment]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
21 回答
322031 浏览

android - 单击按钮时如何防止对话框关闭

我有一个EditText用于输入的对话框。当我单击对话框上的“是”按钮时,它将验证输入,然后关闭对话框。但是,如果输入错误,我想留在同一个对话框中。每次无论输入什么,当我单击“否”按钮时,对话框都应该自动关闭。我怎样才能禁用它?顺便说一句,我使用 PositiveButton 和 NegativeButton 作为对话框上的按钮。

0 投票
6 回答
60704 浏览

android - 如何设置DialogFragment的标题?

这应该是一个简单的任务,但出于某种原因,我可以找到一种方法来设置DialogFragment的标题。(我正在使用onCreateView重载设置对话框内容)。

默认样式为标题留了一个位置,但我在类上找不到任何方法DialogFragment来设置它。

在使用方法设置内容的时候,标题被莫名其妙地设置onCreateDialog了,所以我想知道这是设计使然,还是在使用onCreateView重载时有一个特殊的技巧来设置它。

0 投票
7 回答
138672 浏览

android - 从片段显示对话框?

我有一些片段需要显示常规对话框。在这些对话框中,用户可以选择是/否答案,然后片段应该相应地表现。

现在,Fragment该类没有onCreateDialog()要覆盖的方法,所以我想我必须在外部实现对话框,在包含Activity. 没关系,但随后Activity需要以某种方式将所选答案报告给片段。我当然可以在这里使用回调模式,因此片段在Activity监听器类中注册自己,并且活动会通过那个或类似的东西报告答案。

但这对于在片段中显示“简单”是 - 否对话框的简单任务来说似乎是一个很大的混乱。此外,这样我Fragment的独立性会降低。

有没有更清洁的方法来做到这一点?

编辑:

这个问题的答案并没有真正详细解释应该如何使用 DialogFragments 来显示来自 Fragments 的对话框。所以AFAIK,要走的路是:

  1. 显示一个片段。
  2. 需要时,实例化一个 DialogFragment。
  3. 将原始 Fragment 设置为此 DialogFragment 的目标,使用.setTargetFragment().
  4. 使用原始片段中的 .show() 显示 DialogFragment。
  5. 当用户在此DialogFragment 上选择某个选项时,通知原始Fragment 这个选择(例如用户单击'yes'),您可以通过.getTarget() 获取原始Fragment 的引用。
  6. 关闭 DialogFragment。
0 投票
2 回答
35804 浏览

android - Android关闭自定义对话框

我试图让自定义对话框在按钮按下时关闭

dialog.dismiss 对我不起作用。我只是想将此自定义对话框用作帮助屏幕,并希望按下按钮将其关闭。

我对android dev很陌生,但已经尝试了很多小时

感谢您的任何建议

0 投票
31 回答
188667 浏览

android - Android中的全屏DialogFragment

我正在尝试显示几乎全屏的 DialogFragment。但我不知何故不能这样做。

我展示片段的方式直接来自 android 开发者文档

我知道天真地试图将片段中的 RelativeLayout 设置为 fill_parent 和一些 minWidth 和 minHeight。

我知道期望 DialogFragment 填满屏幕的大部分。但我似乎只在垂直方向上调整大小,但只在水平方向上调整一些固定宽度。

我还尝试在代码中设置窗口属性,如下所示:http ://groups.google.com/group/android-developers/browse_thread/thread/f0bb813f643604ec 。但这也无济于事。

我可能对 Android 如何处理对话框有误解,因为我是全新的。我怎么能做这样的事情?有没有其他方法可以达到我的目标?


Android 设备:
华硕 EeePad Transformer
Android 3.0.1


更新: 我现在设法将其全屏显示,片段中包含以下代码

不幸的是,这不是我想要的。我肯定需要在对话框周围有一个小的“填充”来显示背景。

任何想法如何做到这一点?

0 投票
1 回答
2517 浏览

android - 是否可以从 PreferenceActivity 中的 Preference 启动 DialogFragment?

我正在转换我的应用程序以使用 v4 兼容性包和片段。到目前为止我做得很好,但我需要从PreferenceActivity. 由于兼容性库中没有 PreferenceFragment,我坚持使用PreferenceActivity. 是否可以获得对片段管理器的引用并调用DialogFragment或者如果我需要来自首选项的对话框,我是否只需要继续使用旧对话框?

0 投票
2 回答
7702 浏览

android - 在 Dialog Fragment 中更改自定义对话框的高度

我创建了一个自定义对话框,代码如下。问题是,对话框的高度变成了 wrap_content,即它与我在 xml 中提到的高度无关。我检查了其他问题,他们没有帮助我。

fragment_points_dialog.xml 的 xml 是

我正在显示这样的对话框..

我想知道一种可以在对话框片段中更改对话框高度的方法。

0 投票
10 回答
160812 浏览

android - Android DialogFragment vs Dialog

谷歌建议我们使用简单的 by usingDialogFragment代替简单Dialog的 by using Fragments API,但是DialogFragment对于简单的 Yes-No 确认消息框使用隔离是很荒谬的。在这种情况下,最佳做法是什么?

0 投票
1 回答
2070 浏览

android - DialogFragment-Chain 之类的向导

嗨,Android 开发人员,

我尝试连续有两个 DialogFragment,所以当第一个被取消时,会弹出第二个。

这是我到目前为止所拥有的:

在我的活动中,我调用以下方法:

在我的 DialogFragment 中,我有以下代码来检测它将被取消:

回到我的活动中,我通过启动第二个对话框对此事件做出反应:

只要我在第一个对话框上没有方向更改,这就会完美地工作。当我有一个时,我收到以下错误:

java.lang.IllegalStateException:onSaveInstanceState 后无法执行此操作

此异常在“newFragment.show(getSupportFragmentManager(), “mySecondDialogTag”); 行引发。

我认为如何解决这个问题是手动关闭第一个对话框。我试过以下:

再次没有方向改变一切工作正常。当我在屏幕上显示第一个对话框时更改方向时,我在“firstFragment.dismiss()”行上得到一个 NullPointerException。

为什么会这样?为什么 FragmentManager 在方向更改后会忘记我的 DialogFragment 以及为什么我不能只显示第二个。Androidreferences 说:

您应该使用 show(FragmentManager, String) 或 show(FragmentTransaction, String) 将 DialogFragment 的实例添加到您的 UI,因为它们会跟踪 DialogFragment 在关闭对话框时应如何删除自身。

我确实使用 show,但它仍然无法正常工作。

任何提示都非常感谢!

干杯 Ali3n

0 投票
10 回答
62509 浏览

android - 无法使自定义 DialogFragment 在 Fragment 上透明

我需要在片段上创建一个对话框(占据整个屏幕)。该对话框需要是一个浮动对话框,它将定位在片段上方,片段在片段之外变暗。

对于自定义对话框,我有一个带有弯曲边缘的线性布局,无论我做什么,对话框的所有侧面都有黑色边框(非常小)。我已经尝试了一切让它透明并消失(这样所有的对话框都只是线性布局 - 曲线框)

对于 DialogFragment,这就是我的 onCreateView

custom_dialog 只是一个具有 android:backgroung 设置为 #000000 的 LinearLayout

这是我自定义对话框的风格

我尝试了这种风格的各种组合(从我在网上看到的),我无法摆脱那个恼人的黑色边框,如果我将 LinearLayout 背景设置为除#000000...

我已经花了3-4个小时在这上面,我希望其他人能帮忙......