设置在每个项目RecyclerView中减少显示并显示更多WebView

时间:2019-06-18 15:33:11

标签: android android-recyclerview webview

我有一个RecyclerView,每个小组在webview下方都有一个WebView和一个TextView,以显示更少/显示更多的webview。 如果我的Web视图包含height < 100dp个文本,则showless/showmoreGONE;当Webview的高度> = 100dp时,将显示可见文本。 当webview的高度> = 100dp时,我需要将其最大高度设置为100dp,然后单击showless/showmore来展开和折叠高度。 我的解决方案是等待webview调用onPageFinished时,我会得到高度的webview并检查我的情况,但是我的解决方案不是很好。当我等待webview完成并在ViewHolder中更新ItemView的LayoutParams时,它将jump item。 所以我用自定义的webview更改了解决方案并使用了

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int hSize = MeasureSpec.getSize(heightMeasureSpec);
        int hMode = MeasureSpec.getMode(heightMeasureSpec);

        switch (hMode){
            case MeasureSpec.AT_MOST:
                heightMeasureSpec = MeasureSpec.makeMeasureSpec(Math.min(hSize, maxHeight), MeasureSpec.AT_MOST);
                break;
            case MeasureSpec.UNSPECIFIED:
                heightMeasureSpec = MeasureSpec.makeMeasureSpec(maxHeight, MeasureSpec.AT_MOST);
                break;
            case MeasureSpec.EXACTLY:
                heightMeasureSpec = MeasureSpec.makeMeasureSpec(Math.min(hSize, maxHeight), MeasureSpec.EXACTLY);
                break;
        }
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}

但是我在这里有问题。如何检测> 100dp的Webview的高度达到“消失”并可见TextView showlesss / showmore,如何通知ChangeData显示/隐藏TextView? 非常感谢您,我的英语很抱歉。

0 个答案:

没有答案