我有一个XML布局,在某些设备上运行正常,但在其他设备上膨胀时崩溃(仅显示部分XML代码):
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
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:id="@+id/constraintLayout_record_audio"
android:minWidth="@android:dimen/dialog_min_width_major"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
在某些设备上,布局的填充很好,但在其他设备上会导致InflateException
。
我在我的xml文件中找到了罪魁祸首:
<!-- Causes InflateException on some devices:
android:minWidth="@android:dimen/dialog_min_width_major" -->
很遗憾,删除导致
InflateException
的行后,android:layout_height="wrap_content"
不再起作用。
layout_height
始终呈现为设置为"match_parent"
。有什么想法以及如何解决?为了更清晰地说明,以下是我调用对话框的方式:
fun showRecordAudioDialog(view: View, categoryId: String, detailId: String) {
val dialog = RecordAudioDialogFragment.newInstance(categoryId, detailId)
dialog.show(this@DetailsActivity.supportFragmentManager, "RecordAudioDialog")
}
在我的RecordAudioDialogFragment中:
// Use the Builder class for convenient dialog construction
val builder = AlertDialog.Builder(activity, style.CustomTheme_Dialog)
val inflater = activity.layoutInflater
val rootView = inflater.inflate(layout.dialog_record_audio, null)
android:minWidth="@android:dimen/dialog_min_width_major"
就会崩溃!回到原点! - CEO tech4lifeapps