因此,我正在创建一个对话框片段,允许用户从一些选项中进行选择。我在约束布局中有一个非常简单的布局。TextView在顶部,回收器视图,然后在底部的两个按钮。
问题是,我希望回收器视图是包装内容,这样如果没有太多的选项,对话框就会缩小。但是,如果有很多选项,我希望将其展开,然后开始滚动,以便所有视图都在屏幕上可见。
我似乎无法克服这种情况,无论是哪种情况,它总是很大。或者,如果我只允许内容换行,对话框将变得非常大,以至于底部的按钮都丢失了。
我假设它与一些特定的约束选项有关,但我找不出组合。有什么想法吗?
编辑:我知道一个简单的答案是在回收器视图上设置一个最大高度。我希望做同样的事情,但有限制,所以它不是固定的硬高度。
EDIT2:如果视图模型的高度是固定的,那么看起来约束将以wrap作为默认值很好地工作。我真的不能处理一个固定的高度视图模型...
谢谢
发布于 2019-11-04 09:05:48
创建覆盖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>https://stackoverflow.com/questions/58684790
复制相似问题