首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓对话框片段RecyclerView包装内容,但最大高度基于限制?

安卓对话框片段RecyclerView包装内容,但最大高度基于限制?
EN

Stack Overflow用户
提问于 2019-11-04 05:29:30
回答 1查看 631关注 0票数 4

因此,我正在创建一个对话框片段,允许用户从一些选项中进行选择。我在约束布局中有一个非常简单的布局。TextView在顶部,回收器视图,然后在底部的两个按钮。

问题是,我希望回收器视图是包装内容,这样如果没有太多的选项,对话框就会缩小。但是,如果有很多选项,我希望将其展开,然后开始滚动,以便所有视图都在屏幕上可见。

我似乎无法克服这种情况,无论是哪种情况,它总是很大。或者,如果我只允许内容换行,对话框将变得非常大,以至于底部的按钮都丢失了。

我假设它与一些特定的约束选项有关,但我找不出组合。有什么想法吗?

编辑:我知道一个简单的答案是在回收器视图上设置一个最大高度。我希望做同样的事情,但有限制,所以它不是固定的硬高度。

EDIT2:如果视图模型的高度是固定的,那么看起来约束将以wrap作为默认值很好地工作。我真的不能处理一个固定的高度视图模型...

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-04 09:05:48

创建覆盖onMeasure方法的customRecyclerView。

代码语言:javascript
复制
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);
    }

}

你可以像这样调用回收器视图。

代码语言:javascript
复制
<com.example.yourpackage.CustomRecyclerView>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58684790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档