java - 旋转时自动调用 onBindViewHolder

标签 java android

我正在开发我的应用程序,它要求电影海报的比例为 1:2。我找到了一种方法来做到这一点就是运行

        movieAdapterViewHolder.posterview.requestLayout();
    ViewTreeObserver viewTreeObserver = movieAdapterViewHolder.cardview.getViewTreeObserver();
    if (viewTreeObserver.isAlive()) {
        viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
            @Override
            public void onGlobalLayout() {
                movieAdapterViewHolder.cardview.getViewTreeObserver().removeOnGlobalLayoutListener(this);
                movieAdapterViewHolder.posterview.getLayoutParams().height = Double.valueOf(movieAdapterViewHolder.posterview.getWidth() * 1.5).intValue();
            }
        });
    }

但是,这不会在旋转时立即调用。它只能从 onBindViewHolder 调用。有没有其他方法可以将 RecyclerView 中的 CardView 的高度设置为其宽度的 2 倍,或者我如何以某种方式调用 onBindViewHolder?

最佳答案

您可以通过调用 yourAdapter.notifyDataSetChanged() 通知您的适配器您所做的更改。它调用 onBindViewHolder 并使用最新更改更改您的项目 View 。

关于java - 旋转时自动调用 onBindViewHolder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52584570/

相关文章:

android - 将gradle和android studio更新到3.0.0并将android支持库更新到26.0.1后出现错误

java - 将使用 this 引用的实例成员函数转换为静态函数

java - XMPP编程使用erlang还是java?

java - 动态更改树选择的显示形式

android - 使用 Google Play 服务位置在 android 中唤醒过多的警报管理器

android - 错误 :Cannot configure the 'publishing' extension after it has been accessed

Java File .write() 整数流

java - Java 中的实时 MessageConsole GUI

android - CountDownTimer 在 TextView 上显示时跳过一秒

android - 在 Android 应用程序的 ListView 下添加包含 2 个按钮的布局