gpt4 book ai didi

java - 为什么android自定义对话框会全屏显示

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:04:59 26 4
gpt4 key购买 nike

我正在尝试创建自定义对话框

基本布局(我也尝试过各种修改布局)

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="@color/dialogHeaderBackground"
android:gravity="center"
android:minHeight="@dimen/minHeightDialogTitle"
android:text=""
android:textStyle="bold" />

<TextView
android:id="@+id/message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/title"
android:layout_marginTop="5dp"
android:text="" />

<LinearLayout
android:id="@+id/loutButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_below="@+id/message"
android:layout_centerHorizontal="true"
android:layout_marginTop="5dp"
android:orientation="horizontal" >

<Button
android:id="@+id/btnNeutral"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="" />

<Button
android:id="@+id/btnNegative"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="" />

<Button
android:id="@+id/btnPositive"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="" />
</LinearLayout>
</RelativeLayout>

Java 代码

        Dialog dialog = new Dialog(this);
// Dialog dialog = new Dialog(this,R.style.Theme_Dialog);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

dialog.setContentView(R.layout.custom_dialog);

Button btnPositive=(Button) dialog.findViewById(R.id.btnPositive);
Button btnNegative=(Button) dialog.findViewById(R.id.btnNegative);
Button btnNeutral=(Button) dialog.findViewById(R.id.btnNeutral);

TextView txvTitle=(TextView)dialog.findViewById(R.id.title);
TextView txvMessage=(TextView)dialog.findViewById(R.id.message);
...
so on and so forth

我得到以下全屏对话框,这是我不想要的

fullscreen dialog

已经尝试过的解决方案,结果与上面的截图相同

  1. Styles.xml configuration 1 | Implemented Pastebin code
  2. Styles.xml configuration 2 | Implemented Pastebin code
  3. The example provided in Android Dev Guide using AlertDialog.Builder | Implemented Java Code
  4. 我的底层布局都没有使用 MATCH_PARENT 的高度。正如这个 Stack overflow answer 中所说
  5. 还尝试根据答案 here 将对话框的窗口设置更改为 WRAP_CONTENT | Implemented Java Code in Pastebin
  6. 还尝试将整个 RelativeLayout 保留在父级 LinearLayout 中,请参阅以下 answer 中的第 3 条评论

我唯一能得到像样的对话框是在为 xml 布局指定高度时,像这样 android:layout_height="150dp"

 <RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="150dp" >

指定固定高度时的对话框,

  1. 当消息变大时内容/布局丢失 more text in dialog message
  2. 当消息较小时,对话框显示的比需要的大,见下面的 OK 按钮 less text is dialog message

不要建议将上述(指定固定高度)作为解决方案,因为它效率不高,看起来不太好,也不是动态的,它是静态的

问题

具体要做什么,外观不错的自定义对话框也可以自定义?

如果您能帮我解决这个问题,我愿意悬赏以示感谢

编辑:提供赏金以纠正解决方案。

最佳答案

从线性布局中移除 android:layout_alignParentBottom="true"line

关于java - 为什么android自定义对话框会全屏显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32264876/

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