Android: CollapsingToolbarLayout и SearchView, перекрытие текста

У меня есть небольшая проблема с перекрытием заголовка CollapsingToolbarLayout с текстом SearchView. Когда раскрыт CollapsingToolbarLayout, проблем нет:

Но когда свернуто, текст перекрывается:

Как это исправить?

3 ответа

Решение

Я попытался ответить Томасом, но возникла проблема: после прокрутки пользователь снова закрывает панель приложения и проблема появляется снова.

Поэтому я предложил другое решение - сделать свернутый текст заголовка прозрачным при расширении области поиска. Это прекрасно работает и не зависит от состояния свертывания / развертывания панели приложения или его изменения.

Просто это:

    if (searchViewExpanding) {
        collapsingToolbarLayout.setCollapsedTitleTextColor(Color.TRANSPARENT);
    } else {
        collapsingToolbarLayout.setCollapsedTitleTextColor(Color.WHITE);
    }

Конечно, вам нужно справиться setOnActionExpandListener вашего пункта меню поиска, чтобы знать, когда позвонить.

Теперь ответ прост, разверните CollapsingToolbarLayout при нажатии кнопки поиска. Благодаря Tuấn Trần Anh и этот код:

coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinator_layout);
appBarLayout = (AppBarLayout) findViewById(R.id.appbar);
CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams();
AppBarLayout.Behavior behavior = (AppBarLayout.Behavior) params.getBehavior();

behavior.setTopAndBottomOffset(0);
behavior.onNestedPreScroll(coordinatorLayout, appBarLayout, null, 0, 1, new int[2]);

больше информации в этой теме.

РЕДАКТИРОВАТЬ

Все еще не решив, они решили еще одну проблему. С изменением текста. Теперь уловка заключается в использовании ControllableAppLayout, чтобы узнать, когда панель свернута или развернута, поэтому вы просто устанавливаете и очищаете заголовок setTitle("")

Вы можете найти мою реализацию здесь https://gist.github.com/skimarxall/863585dcd7abde8f4153

Проблема: https://code.google.com/p/android/issues/detail?id=178138

Другие вопросы по тегам