Android对话框片段RecyclerView包裹内容,但最大高度基于约束?
所以我正在创建一个对话框片段,允许用户从一些选项中进行选择。我在约束布局中有一个非常简单的布局。顶部的文本视图、回收器视图,然后是底部的两个按钮 问题是,我想让recyclerview包装内容,这样如果没有太多选项,对话框就会缩小。但是,如果有很多选项,我希望它展开,然后开始滚动,这样所有视图都可以在屏幕上看到 我似乎无法摆脱这样一种情况,即它总是很大。或者,如果我只允许包装内容,对话框将变得非常大,底部按钮将丢失 我假设它与某些特定的约束选项有关,但我无法找出它们的组合。有什么想法吗 编辑:我知道一个简单的答案是在“回收器”视图上设置最大高度。我希望做同样的事情,但有限制,所以它不是一个固定的硬高度 EDIT2:如果视图模型的高度是固定的,那么约束将很好地与默认的包裹一起工作。我真的不能处理一个固定高度的视图模型,虽然Android对话框片段RecyclerView包裹内容,但最大高度基于约束?,android,android-recyclerview,android-constraintlayout,android-dialogfragment,Android,Android Recyclerview,Android Constraintlayout,Android Dialogfragment,所以我正在创建一个对话框片段,允许用户从一些选项中进行选择。我在约束布局中有一个非常简单的布局。顶部的文本视图、回收器视图,然后是底部的两个按钮 问题是,我想让recyclerview包装内容,这样如果没有太多选项,对话框就会缩小。但是,如果有很多选项,我希望它展开,然后开始滚动,这样所有视图都可以在屏幕上看到 我似乎无法摆脱这样一种情况,即它总是很大。或者,如果我只允许包装内容,对话框将变得非常大,底部按钮将丢失 我假设它与某些特定的约束选项有关,但我无法找出它们的组合。有什么想法吗 编辑:我
谢谢创建一个覆盖onMeasure方法的customRecyclerView
public class CustomRecyclerView extends RecyclerView{
public CustomRecyclerView (Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomRecyclerView (Context context) {
super(context);
}
public CustomRecyclerView (Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
你可以这样称呼回收站
<com.example.yourpackage.CustomRecyclerView>
这里的答案有用吗?()app:layout\u constrainedHeight=“true”
。创建一个覆盖onMeasure的customrecyclerviewmethod@TylerV嘿,只有当你的取景器有一个固定的高度时,它们才起作用。如果这些是包装内容(我觉得这是大多数视图持有者),那么它的大小就不正确。我的猜测是因为如果它的内容是动态的,它不知道如何确定大小。单独使用动态高度视图保持器会使其始终增长到约束最大值。因此,无法使用现有的RecyclerView来绕过它?似乎是Recyclerviews和DialogFragments之间的差距。好的,我们将采用这种方法。谢谢