Установите показать меньше и показать больше WebView в каждом элементе RecyclerView - PullRequest
0 голосов
/ 18 июня 2019

У меня есть RecyclerView с каждым итемом, у которого есть WebView и TextView ниже веб-просмотра, чтобы показать меньше / показать больше веб-просмотра.Если у моего веб-просмотра будет height < 100dp, то текст showless/showmore будет GONE, а когда высота веб-просмотра> = 100dp, текст станет видимым.Когда высота веб-просмотра> = 100dp, мне нужно установить максимальную высоту, чтобы она составляла 100dp, и нажмите showless/showmore, чтобы развернуть и свернуть высоту.Мое решение - подождать, когда вызов webview onPageFinished получит высоту просмотра веб-страницы и сверится с моим делом, но мое решение не очень хорошее.Когда я дождусь окончания просмотра веб-страницы и обновлю LayoutParams для ItemView в ViewHolder, он будет jump item.Поэтому я меняю решение с помощью собственного веб-просмотра и использовал

@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 в GONE и Visiable мой TextView showlesss / showmore и как я могу уведомитьChangeData, чтобы показать / скрыть мой TextView?Большое спасибо и извините за мой английский.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...