android - 自定义对话框中textview的高度为0
问题描述
我有一个自定义弹出对话框,但 textview 没有正确显示。比如我有活动A和活动B,现在我是活动B,当我回到活动A时,我的自定义弹出对话框会显示,但有时自定义对话框中的textview没有显示,我发现textview的高度为0,我不知道为什么!有没有人可以帮我弄清楚?谢谢!
下面的代码是有时无法正确显示的文本视图!
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/popup_avatar_layout_margin"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/nick_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/popup_avatar_layout_margin"
android:gravity="center_horizontal"
android:textColor="@color/kcpopup_avatar_kidDialogContext"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="[NickName]" />
public class DialogPopupActivity extends Dialog{}
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
protected void onCreate(Bundle savedInstanceState){
setContentView(R.layout.kid_dialog_avatar_layout)
useDialogCustomAvatar();
super.onCreate(savedInstanceState);
}
我在方法 useDialogCustomAvatar 上设置了文本。下面的代码就是我所做的。
TextView nickNameView = findViewById(R.id.nick_name);
nickNameView.setText(title);
解决方案
使用DialogFragment
类而不是Dialog
类和覆盖onCreateDialog
方法。这是创建对话框的首选方式。该类Dialog
不处理生命周期事件,这有时会导致消息不显示。
推荐阅读
- c# - ASP.NET 核心 APi 中的 CSharpScript 内存泄漏
- javascript - Bootsrap Modal ajax 保存多条记录,bootstrapValidator
- if-statement - 在模板html的范围内嵌套if语句
- java - 使用 JNI 获取“UnsatisfiedLinkError”以将字符串从 C++ 传递到带有 OpenCV 的 java
- php - Symfony 事件订阅实体
- screen - 具有透明度 png 的启动画面。- C++ 生成器
- java - 根据另一个字段值序列化和反序列化一个字段
- node.js - 可以使用`node app.js`在AWS实例上运行节点应用程序吗
- python - Python 和 WinDLL 调用不会从 DLL 调用返回
- kotlin - 暴露的 Kotlin。西里尔编码问题