android - 如何设置 RecyclerView 最大高度

标签 android android-recyclerview

我想设置 RecylerView 的最大高度。我可以使用下面的代码设置最大高度。下面的代码使高度为当前屏幕的 60%。

     DisplayMetrics displaymetrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
    int a = (displaymetrics.heightPixels * 60) / 100;
    recyclerview1.getLayoutParams().height = a;

但现在的问题是,如果它没有项目,那么它的高度也是 60%。 所以我想在没有项目时将其高度设置为0。

我想实现类似的目标。

    if(recyclerview's height > maxHeight)
then set recyclerview's height to maxHeight
    else dont change the height of recyclerview.

如何设置? 请帮帮我,我坚持下去了

最佳答案

这里有一些东西,你需要。继承 RecyclerView 并覆盖 onMeasure 如下:

@Override
protected void onMeasure(int widthSpec, int heightSpec) {
    heightSpec = MeasureSpec.makeMeasureSpec(Utils.dpsToPixels(240), MeasureSpec.AT_MOST);
    super.onMeasure(widthSpec, heightSpec);
}

确保在 makeMeasureSpec() 中将正确数量的像素作为第一个参数。我个人需要 RecyclerView,最多 240dps。

关于android - 如何设置 RecyclerView 最大高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42694355/

相关文章:

android - 从 pendingintent 启动后 startactivity 不起作用

android - 如何为手机和平板电脑优化 Android 小部件?

android - CoordinatorLayout 内的水平 RecyclerView

android - notifyItemChanged 不刷新 View

android - Android New文物跟踪非网络错误

android - WordPress 主题中的简单 Android 与 iOS 检测

java - 将输入流转换为位图

java - 如何从 Fragment Dialog 更新自定义 RecyclerView?

android - 如何从适配器外部访问 Recyclerview.ViewHolder 参数?

kotlin - 使用 SearchView 过滤 RecyclerView/ListAdapter