android - 带有 Dialogfragment 的 Activity 总是在中间
问题描述
上图是我当前的带有对话框片段的活动。如您所见,对话框位于屏幕中间,但它希望它看起来像谷歌地图中的样子,当我单击按钮时,对话框出现在按钮附近:
=>
正如您在谷歌地图中看到的那样,对话框不在所选按钮附近的中间。这是我的代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/edit_name"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/lbl_your_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Your name" />
<EditText
android:id="@+id/txt_your_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:imeOptions="actionDone"
android:inputType="text" />
</LinearLayout>
看起来像这样:
正如您在编辑我的对话框片段时看到的那样,edittext 和 textview 位于屏幕顶部,但由于某种原因,当我部署应用程序时它们位于中间。
解决方案
试试这个,它会移动对话框 BOTTOM、TOP、RIGHT、LEFT。
Dialog d = <code to create custom dialog>;
Window window = d.getWindow();
WindowManager.LayoutParams wlp = window.getAttributes();
wlp.gravity = Gravity.BOTTOM;
wlp.flags &= ~WindowManager.LayoutParams.FLAG_DIM_BEHIND;
window.setAttributes(wlp);
使用Gravity.TOP,BOTTOM,RIGHT,LEFT将对话框放置在该位置。
推荐阅读
- python - 如何找到重叠矩形的面积
- azure-data-factory - 映射时使用 adf 管道参数作为源来接收列
- python - “return +/-”在python中做了什么?
- reactjs - 如何在 next.js 中测试 _app.js 内部的逻辑?
- ios - 添加标签栏控制器时如何防止子视图被切断?
- php - PHP按域排序子域列表
- java - MongoDb 使用聚合查询 java 代码
- c++ - 等效的 Windows API 以支持 shell get-physicaldisk 命令
- reactjs - React-select v2 中的旋转箭头指示器
- python - 来自另一个类的实例的子类