【发布时间】:2020-04-27 01:51:32
【问题描述】:
布局文件:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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/popupCategoriesLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/list_categories"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:nestedScrollingEnabled="true"
android:paddingTop="8dp"
android:scrollbars="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/popu_category_info"
/>
<ImageView
android:id="@+id/imageViewPopupCategoryInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
app:layout_constraintBottom_toBottomOf="@+id/popu_category_info"
app:layout_constraintEnd_toStartOf="@+id/popu_category_info"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_info_outline_orange_24dp" />
<TextView
android:id="@+id/popu_category_info"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="48dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:background="@color/popup_warning_category"
android:paddingStart="8dp"
android:text="@string/warning_category_info"
android:textColor="@color/white"
android:textSize="16sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
所以我想要在对话框顶部的信息标签 + 可滚动列表。显示对话框的代码:
CategoryGroupAdapter gropupAdapter = new CategoryGroupAdapter(categoryGroups);
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
View convertView = LayoutInflater.from(MainActivity.this).inflate(R.layout.popup_category, null);
RecyclerView list = convertView.findViewById(R.id.list_categories);
list.setLayoutManager(new LinearLayoutManager(MainActivity.this));
list.setHasFixedSize(false);
list.setAdapter(gropupAdapter);
gropupAdapter.collapseAll();
AlertDialog d = alertDialog.setView(convertView).setCancelable(true).setTitle(getString(R.string.category_dialog_title)).show();
因此,如果整个列表没有空间显示所有项目,我将在底部截断列表。似乎它被截断了信息标签高度(但我无法设置固定的信息标签高度,因为它需要在具有各种 dpi 的所有设备上显示所有文本)。
任何想法如何正确显示我的对话框?
截图:
【问题讨论】:
-
请您发布实现的屏幕截图以改进您的问题。
-
添加截图
-
对话框布局文件的根
ViewGroup是什么? -
我更正了我的帖子,我明白你在问什么,它是
ConstraintLayout
标签: java android layout android-recyclerview android-dialog