2016-06-16 7 views
0

У меня простая работа с CollapsingToolbar. Позвольте мне показать вам, что у меня есть, а затем объясните, в чем проблема!Почему моя кнопка скрыта при использовании CollapsingToolbar

Когда панель свернута (слева) против, когда он расширен (справа)

collapsed Toolbarexpanded Toolbar

Как вы можете видеть, Search button не отображается, когда панель инструментов расширяется , Как я могу это исправить?

activity_search.xml:

<android.support.design.widget.CoordinatorLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 

    <android.support.design.widget.AppBarLayout 
     android:fitsSystemWindows="true" 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/app_bar_height" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:fitsSystemWindows="true" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

      <ImageView 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       app:layout_collapseMode="parallax"/> 

      <android.support.v7.widget.Toolbar 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       app:layout_collapseMode="pin" 
       app:popupTheme="@style/AppTheme.PopupOverlay"/> 

     </android.support.design.widget.CollapsingToolbarLayout> 
    </android.support.design.widget.AppBarLayout> 

    <include 
     layout="@layout/content_search" /> 
</android.support.design.widget.CoordinatorLayout> 

content_search.xml

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/ll" 
     android:layout_alignParentTop="true" 
     android:layout_marginBottom="@dimen/view_margin" 
     android:orientation="horizontal"> 

     <AutoCompleteTextView 
      android:id="@+id/etIngredients" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1"/> 

     <ImageButton 
      android:id="@+id/btAdd" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/ic_add"/> 
    </LinearLayout> 

    <Button 
     android:id="@+id/btSearch" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:text="@string/search"/> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/rvIngredients" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_above="@id/btSearch" 
     android:layout_below="@id/ll"/> 
</RelativeLayout> 

Я попытался найти этот вопрос, но could'nt найти что-нибудь вообще!

ответ

1

Он скрыт из-за вашей сворачиваемой панели инструментов. Когда вы говорите match_parent, он занимает высоту, исключая высоту развернутой панели инструментов. Все, что вам нужно сделать, это добавить bottom_margin израсходованной высоты панели инструментов.

Надеюсь, это вам поможет :)

+0

Имеет смысл! Я попробую это, когда вернусь к своему компьютеру. Спасибо –

+0

Спасибо. Это сработало! :) –

+0

Ваше приветствие :) – Neo

2

попробуй изменить content_search.xml таким образом:

<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" 
app:layout_behavior="@string/appbar_scrolling_view_behavior" > 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_marginBottom="@dimen/view_margin" 
    android:orientation="horizontal"> 

    <AutoCompleteTextView 
     android:id="@+id/etIngredients" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1"/> 

    <ImageButton 
     android:id="@+id/btAdd" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_add"/> 
</LinearLayout> 

<android.support.v7.widget.RecyclerView 
    android:id="@+id/rvIngredients" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

<Button 
    android:id="@+id/btSearch" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:text="@string/search"/> 
</LinearLayout> 

И если вам не нужно иметь свою кнопку поиска прямо в нижней части экрана, переместите его выше RecyclerView.

+0

Когда я заполняю recyclerView, кнопка поиска снова появляется под экраном. Если я не найду исправление, я поставлю кнопку поиска сверху, как вы предложили –

+1

. Я хотел бы предложить сохранить кнопку поиска чуть ниже 'EditText', если вы хотите, чтобы кнопка искала текст, введенный в' EditText '. Однако, если вы хотите, чтобы кнопка была внизу, вы можете сделать компоновку более сложной и использовать «FrameLayout». Дайте мне знать, если вы хотите, чтобы я продемонстрировал это. –

+0

Никогда не работал с FrameLayout, но предложение Нео работало. Спасибо за вашу помощь, но –

1

Пожалуйста, проверьте ваш content_search.xml

что идентификатор android:layout_below="@id/ll" ??

Я думаю, что это идентификатор линейной компоновки, пожалуйста, добавьте это и бегите в надежде, что это вам поможет.

+0

Отредактировал мой вопрос. Это первый LinearLayout :) –

 Смежные вопросы

  • Нет связанных вопросов^_^