使用ViewBinding时CardView Dialog宽度显示异常求助
迁移至ViewBinding后CardView Dialog宽度异常问题
为适配Android最新目标版本,将项目迁移至ViewBinding后,发现用CardView创建的Dialog宽度显示异常。如果把dialog.setContentView(bindingMFA.root)改回dialog.setContentView(R.layout.dialog_mfa),Dialog显示就正常了。
相关代码
LoginActivity.kt 中的 addUserDialog 方法
override fun addUserDialog() { Handler(Looper.getMainLooper()).post(Runnable { LoggerUtils.logMessage("PMN Calling MFA User Dialog") var dialog = Dialog(this) dialog.requestWindowFeature(Window.FEATURE_NO_TITLE) dialog.setContentView(bindingMFA.root) dialog.setCancelable(false) bindingMFA.mBtnCancel.setOnClickListener { dialog.dismiss() } bindingMFA.mBtnConfirm.setOnClickListener { mMFACode = bindingMFA.mSMSMFA.text.toString() mLoginViewPresenter.confirmLogin(mMFACode) dialog.dismiss() } dialog.show() }) }
onCreate 方法中的Binding初始化
private lateinit var binding: ActivityLoginBinding private lateinit var bindingMFA: DialogMfaBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityLoginBinding.inflate(layoutInflater) val view = binding.root setContentView(view) bindingMFA = DialogMfaBinding.inflate(layoutInflater) }
dialog_mfa.xml 布局文件
<?xml version="1.0" encoding="utf-8"?> <androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="300dp" android:layout_height="wrap_content" app:cardCornerRadius="4dp" app:cardElevation="8dp"> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="4dp"> <TextView android:id="@+id/mLblInvitationHeader" style="@style/LabelTextMediumBold" android:layout_width="0dp" android:layout_height="40dp" android:background="@color/background_blue" android:gravity="center" android:text="@string/mfa_header" android:textColor="@color/text_white" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/mLblHeader" style="@style/LabelTextMedium" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:gravity="center" android:singleLine="false" android:text="@string/mfa_intro" android:textColor="@color/black" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/mLblInvitationHeader" /> <EditText android:id="@+id/mSMS_MFA" style="@style/LabelTextMedium" android:layout_width="0dp" android:layout_height="wrap_content" android:inputType="numberPassword" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:gravity="center" android:singleLine="true" android:textColor="@color/black" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/mLblHeader" /> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:id="@+id/mBtnCancel" app:layout_constraintStart_toStartOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintEnd_toStartOf="@+id/mBtnConfirm" android:layout_marginTop="16dp" app:layout_constraintTop_toBottomOf="@+id/mSMS_MFA" android:layout_marginStart="8dp" android:layout_marginEnd="4dp" android:layout_marginBottom="8dp" app:layout_constraintBottom_toBottomOf="parent" style="@style/GeneralButtonGrey" android:text="@string/cancel"/> <Button android:text="@string/mfa_confirm" android:layout_width="0dp" android:layout_height="wrap_content" android:id="@+id/mBtnConfirm" app:layout_constraintStart_toEndOf="@+id/mBtnCancel" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintEnd_toEndOf="parent" android:layout_marginTop="16dp" app:layout_constraintTop_toBottomOf="@+id/mSMS_MFA" android:layout_marginEnd="8dp" android:layout_marginStart="4dp" android:layout_marginBottom="8dp" app:layout_constraintBottom_toBottomOf="parent" style="@style/GeneralButton"/> </androidx.constraintlayout.widget.ConstraintLayout> </androidx.cardview.widget.CardView>
异常显示截图

恳请各位指出问题所在!
内容的提问来源于stack exchange,提问作者Gadget-Man
相关产品推荐
相关产品推荐

