2016-08-26 97 views
0

Double Toolbar is coming 雙工具欄是顯示片段

好傢伙,

我的問題是有關雙工具欄在我的應用即將到來,而吹脹(或說更換)片段。 我有一個活動課,其中包含具有導航工具欄圖標的工具欄的導航抽屜。

有一些片段,我不希望顯示的工具欄的活動,我需要爲只顯示片段工具欄:

但在更換它的顯示活動以及片段工具欄,任何建議對我很有幫助。

我已經給出了嘗試:

我的片段:

public class FoodDetailsFragment extends Fragment{ 
    View view; 
    private Toolbar toolbar; 
    private ImageView imageView,tabBg; 
    private CollapsingToolbarLayout collapsingToolbar; 
    private TabPagerAdapter tabPagerAdapter; 
    private ViewPager mViewPager; 
    private TabLayout mTabLayout; 
    CoordinatorLayout.Behavior behavior; 
    SendMessage listener; 

    public interface SendMessage{ 
     void sendData(String s); 
} 

    @Override 
    public void onAttach(Activity activity) { 
     super.onAttach(activity); 
     try{ 
      listener= (SendMessage) activity; 

     }catch (ClassCastException exp){ 
      throw new ClassCastException("Class Cast Exp"); 
     } 


    } 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     view=inflater.inflate(R.layout.food_details,container,false); 
     setHasOptionsMenu(true); 
     listener.sendData("ds"); 

     imageView= (ImageView) view.findViewById(R.id.backdrop); 
     tabBg= (ImageView) view.findViewById(R.id.tabBg); 
     collapsingToolbar=(CollapsingToolbarLayout) view.findViewById(R.id.collapsing_toolbar); 

     setToolbar(view); 
     setImage(); 

     mViewPager= (ViewPager) view.findViewById(R.id.viewpager); 
     mTabLayout= (TabLayout) view.findViewById(R.id.detail_tabs); 
     tabPagerAdapter=new TabPagerAdapter(getActivity().getSupportFragmentManager()); 
     mViewPager.setAdapter(tabPagerAdapter); 
     mTabLayout.setTabsFromPagerAdapter(tabPagerAdapter); 
     mTabLayout.setTabGravity(TabLayout.GRAVITY_FILL); 
     mTabLayout.setupWithViewPager(mViewPager); 

     mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
      @Override 
      public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 

      } 

      @Override 
      public void onPageSelected(int position) { 
       if(position==0){ 
        Glide.with(getActivity()).load(R.drawable.onet).into(imageView); 
        Glide.with(getActivity()).load(R.drawable.oneb).into(tabBg); 
       } else { 
        Glide.with(getActivity()).load(R.drawable.twot).into(imageView); 
        Glide.with(getActivity()).load(R.drawable.twob).into(tabBg); 
       } 
       imageView.invalidate(); 
      } 

      @Override 
      public void onPageScrollStateChanged(int state) { 

      } 
     }); 
     return view; 


    } 
    private void setToolbar(View view) { 
     toolbar= (Toolbar) view.findViewById(R.id.toolbarone); 

     ((AppCompatActivity) getActivity()).setSupportActionBar(toolbar); 

     ((AppCompatActivity) getActivity()).getSupportActionBar(); 
     ((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayShowTitleEnabled(true); 




     if (toolbar != null) { 
      ((AppCompatActivity)getActivity()).setSupportActionBar(toolbar); 
     } 


    } 
    private void setImage() { 
     Glide.with(this).load(R.drawable.resfor).into(imageView); 
     Glide.with(getActivity()).load(R.drawable.resone).into(tabBg); 
    } 
    class TabPagerAdapter extends FragmentStatePagerAdapter { 

     public TabPagerAdapter(FragmentManager fm){ 
      super(fm); 
     } 
     @Override 
     public Fragment getItem(int position) { 

      switch (position){ 
       case 0: 
        FoodDetailedInfoFragment tab1 = new FoodDetailedInfoFragment(); 
        return tab1; 
       case 1: 
        FoodReviewFragment tab2 = new FoodReviewFragment(); 
        return tab2; 

       default: 
        return null; 
      } 




     } 

     @Override 
     public int getCount() { 
      return 2; 
     } 

     @Override 
     public CharSequence getPageTitle(int position) { 
      if(position==0){ 
       return "INFO"; 
      }else if(position==1){ 
       return "REVIEW"; 
      } 


      return "INFO" ; 
     } 
    } 

    @Override 
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
     inflater.inflate(R.menu.my_custom_menu, menu); 
     super.onCreateOptionsMenu(menu, inflater); 
    } 

} 

片段XML:

<?xml version="1.0" encoding="utf-8"?> 

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="256dp" 

     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsing_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 

      app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

      <ImageView 

       android:id="@+id/backdrop" 

       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:fitsSystemWindows="true" 
       android:scaleType="fitXY" 
       app:layout_collapseMode="none" /> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbarone" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       app:layout_collapseMode="pin" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> 


      </android.support.v7.widget.Toolbar> 


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

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

    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:layout_gravity="bottom" 

     app:layout_anchor="@+id/appbar" 
     app:layout_anchorGravity="bottom" 
     app:layout_collapseMode="none"> 

     <ImageView 
      android:id="@+id/tabBg" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@color/colorPrimary" 
      android:scaleType="fitXY" /> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/detail_tabs" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:tabMaxWidth="0dp" 
      android:layout_gravity="bottom" 
      android:background="#00000000" 
      app:layout_anchor="@+id/appbar" 
      app:layout_anchorGravity="bottom" 
      app:layout_collapseMode="none" 
      app:tabGravity="fill" 



      app:tabIndicatorColor="#fff" 
      app:tabIndicatorHeight="2dp" 
      app:tabMode="scrollable" 
      app:tabSelectedTextColor="#fff" 
      app:tabTextColor="#fff" /> 

    </FrameLayout> 


    <android.support.v4.view.ViewPager 
     android:id="@+id/viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_marginTop="?attr/actionBarSize" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 
</android.support.design.widget.CoordinatorLayout> 

飛濺活動的xml:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 

    <android.support.design.widget.CoordinatorLayout 
     android:id="@+id/container_main" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <RelativeLayout 
      android:id="@+id/rl" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 
     <android.support.design.widget.AppBarLayout 
      android:id="@+id/app_bar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:background="?attr/colorPrimary" 
       app:elevation="4dp" 
       app:layout_scrollFlags="scroll|enterAlways" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

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




      <FrameLayout 
       android:layout_below="@+id/app_bar" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:focusable="false" 
       android:focusableInTouchMode="false" 
       android:background="@color/faintwhite" 
       android:id="@+id/container"> 

      </FrameLayout> 





     </RelativeLayout> 

     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/fab" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="end|bottom" 
      android:layout_margin="@dimen/spacing" 
      android:src="@drawable/ic_share_grey_600_24dp" 
      app:backgroundTint="@color/colorAccent" /> 

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


    <!-- Navigation Drawer--> 
    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recyclerView" 
     android:layout_width="300dp" 
     android:layout_height="match_parent" 
     android:layout_gravity="left" 
     android:background="#000000"> 

    </android.support.v7.widget.RecyclerView> 

</android.support.v4.widget.DrawerLayout> 






<!-- 
<?xml version="1.0" encoding="utf-8"?> 

<android.support.v4.widget.DrawerLayout 

    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/drawerLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:elevation="7dp"> 


<FrameLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:focusable="false" 
    android:focusableInTouchMode="false" 
    android:background="@color/faintwhite" 
    android:id="@+id/container"> 
    <include 
     android:id="@+id/tool_bar" 
     layout="@layout/app_bar"/> 
&lt;!&ndash;<RelativeLayout 

    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    > 
    <include 
     android:id="@+id/tool_bar" 
     layout="@layout/app_bar"/> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:layout_gravity="center" 

     android:layout_below="@+id/tool_bar"> 
    <LinearLayout 
     android:id="@+id/lin_lay" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 
     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 


      /> 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/linear2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 
     <ImageView 
      android:id="@+id/img" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 

      /> 
    </LinearLayout> 
    </LinearLayout> 

</RelativeLayout>&ndash;&gt; 

</FrameLayout> 

    <android.support.design.widget.NavigationView 
     android:id="@+id/navigation_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:background="@color/white" 
     app:headerLayout="@layout/drawer_header" 
     app:itemIconTint="@drawable/drawer_icon_selector" 
     app:itemTextColor="@drawable/drawer_text_selector" 
     app:menu="@menu/drawer" /> 

    &lt;!&ndash;<android.support.v7.widget.RecyclerView 
     android:id="@+id/RecyclerView" 
     android:layout_width="320dp" 
     android:layout_height="match_parent" 
     android:layout_gravity="left" 

     android:background="#ffffff" 
     android:scrollbars="vertical"> 

    </android.support.v7.widget.RecyclerView>&ndash;&gt; 
    </android.support.v4.widget.DrawerLayout>--> 
+0

你不希望藍olbar的權利? –

+0

use((AppCompatActivity)getActivity())。getSupportActionBar()。hide(); –

+0

@Tony正確的,藍的是從活動 –

回答

1

使用

((AppCompatActivity)getActivity()).getSupportActionBar().hide();

隱藏動作條編程

使用主題:

<style name="AppCompat" parent="Theme.AppCompat.NoActionBar"> 

</style> 
+0

謝謝它的工作,你能告訴我爲什麼三個點的左上方,我沒有提到的菜單項,我只提到搜索按鈕 –

+0

這是漢堡菜單,你必須使用setdisplayashomeenabled(false)禁用它也請接受答案,如果它有幫助 –

3

使用主題

<style name="AppCompat" parent="Theme.AppCompat.NoActionBar"> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 

    </style> 
0
<android.support.v7.widget.Toolbar 
      android:id="@+id/toolbarone" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:layout_collapseMode="pin" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> 

從fragment.xml之

風格去除藍色工具欄刪除此tootlbar

或隱藏活動的工具欄

 ((AppCompatActivity)getActivity()).getSupportActionBar().hide(); 
+0

片段正在崩潰toobar與它自己的菜單圖標但活動是有它自己的工具欄 –

1

使用"Theme.AppCompat.NoActionBar"

2

使用這個主題

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">