2016-10-18 3 views
-1

Я хочу пошлоtoolbar меню, когда рухнулappBarlayout, но я не знаю, как она может.
Мой код здесь:как ушла панель меню, когда разрушился appBarLayout в андроиде

public class MainFragment extends BaseFragment implements Toolbar.OnMenuItemClickListener ... 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
           Bundle savedInstanceState) { 
      View view = inflater.inflate(R.layout.fragment_main, container, false); 

... 
} 
    @Override 
    public int getMenu() { 
     return R.menu.search; 
    } 

XML коды:

<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context="com.sepandar.xengine.fragment.MainFragment"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appBar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@android:color/transparent" 
     android:fitsSystemWindows="true" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsingToolbar" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@android:color/transparent" 
      android:fitsSystemWindows="true" 
      app:contentScrim="?attr/colorPrimaryDark" 
      app:expandedTitleMarginEnd="64dp" 
      app:expandedTitleMarginStart="48dp" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

      <com.sepandar.xengine.views.XTabLayout 
       android:id="@+id/xTab" 
       android:layout_width="match_parent" 
       android:layout_height="200dp" 
       app:layout_behavior="@string/appbar_scrolling_view_behavior" 
       app:tabMode="scrollable"/> 

      <com.api.common.widget.MyToolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:background="@android:color/transparent" 
       app:layout_collapseMode="pin" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
       app:theme="@style/ToolBarStyle"/> 

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

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

    <android.support.v4.view.ViewPager 
     android:id="@+id/viewPager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_below="@+id/xTab" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

    <com.nt.googleplaysearch.views.SearchView 
     android:id="@+id/search" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:visibility="invisible" 
     app:layout_collapseMode="pin"/> 

</android.support.design.widget.CoordinatorLayout> 

Я хочу, чтобы, когда Collapsed appBarLayout, gonepublic int getMenu(), а когда расширение показать это public int getMenu().

Как я могу это сделать?

+0

вы можете поставить соответствующий XML-файл, который содержит в панели инструментов и AppBar код –

+0

@BhunnuBaba , см. мой пост по обновлению! можешь мне помочь? – Pro

+0

один раз попробуйте добавитьOnOffsetChangedListener с appBarLayout –

ответ

0

Используйте AppBarLayout.OnOffsetChangedListener, чтобы получить статус панели приложения {expand/collapse}, Затем скройте меню панели инструментов при изменении значения смещения.

+0

пришлите мне код \ – Pro

+0

Можете ли вы выслать мне код моего друга? – Pro

0

использовать этот app:layout_scrollFlags="scroll|enterAlways" InstEd из app:layout_scrollFlags="scroll|exitUntilCollapsed" в MyToolbar это была работа с RecyclerView или NestedScrollView в качестве второго элемента в CoordinatorLayout обернуть ViewPager в NestedScrollView