2014-10-10 38 views
0

我尝试了很多答案,但我无法从片段中隐藏操作栏,它始终显示。我不明白为什么,请你帮助我吗?如何在启动画面片段中隐藏操作栏

这是我的代码: 飞溅片段:

public class SplashFragment extends Fragment { 



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

      LoginButton authButton = (LoginButton) view.findViewById(R.id.login_button); 
      authButton.setReadPermissions(Arrays.asList("public_profile","email","user_friends")); 



      return view; 
     } 


    } 

我的主要活动onCreate方法:

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     //getWindow().requestFeature(Window.FEATURE_ACTION_BAR); 
     //getActionBar().hide(); 

     setContentView(R.layout.activity_main); 
     DebugHTTPRequests.enable(); 
} 

我的风格应用主题:

<!-- Application theme. --> 
    <style name="AppTheme" parent="AppBaseTheme"> 

     <!-- All customizations that are NOT specific to a particular API-level can go here. --> 
     <item name="android:actionBarStyle">@style/MyActionBar</item> 
     <item name="android:actionBarTabTextStyle">@style/MyActionBarTabText</item> 
     <item name="android:actionMenuTextColor">@color/mb_green</item> 
     <item name="android:actionOverflowButtonStyle">@style/OverflowMenuButton</item> 
     <item name="android:windowBackground">@color/white</item> 
     <item name="android:actionBarWidgetTheme">@style/PopupMenuTextView</item> 

    </style> 


    <style name="MyApp.actionBarWidgetTheme" parent="@style/AppTheme" > 
     <item name="android:spinnerDropDownItemStyle">@style/MyApp.Widget.DropDownItem.Spinner</item> 
    </style> 

    <style name="MyApp.Widget.DropDownItem.Spinner" parent="@android:style/Widget.DropDownItem.Spinner"> 
     <item name="android:textAppearance">@style/MyApp.TextAppearance.Widget.DropDownItem</item> 
    </style> 

    <style name="MyApp.TextAppearance.Widget.DropDownItem" parent="@android:style/TextAppearance.Widget.DropDownItem"> 
     <item name="android:textColor">@color/mb_green</item> 
    </style> 

    <!-- ActionBar styles --> 
    <style name="MyActionBar" parent="@android:style/Widget.Holo.ActionBar"> 
     <item name="android:background">@color/white</item> 
     <item name="android:titleTextStyle">@style/MyActionBarTitleText</item> 
    </style> 

    <!-- ActionBar title text --> 
    <style name="MyActionBarTitleText" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title"> 
     <item name="android:textColor">@color/mb_d_green</item> 
    </style> 

    <!-- ActionBar tabs text styles --> 
    <style name="MyActionBarTabText" parent="@android:style/Widget.Holo.ActionBar.TabText"> 
     <item name="android:textColor">@color/mb_green</item> 
    </style> 

    <!-- Over flow icon (3 carrés) --> 

    <style name="OverflowMenuButton" parent="@android:style/Widget.Holo.ActionButton.Overflow"> 
     <item name="android:src">@drawable/ic_fc_settings</item> 
    </style> 

    <!-- Change Overflow Menu ListView Text Size and Text Size --> 
    <style name="PopupMenuTextView" parent="@style/android:Theme.Holo.Light"> 
     <item name="android:textColor">@color/mb_green</item> 
     <item name="android:background">@color/transparent</item> 

    </style> 

我不understant为什么getActivity()。getActionBar()。hide()什么都不做。

回答

3

尝试requestWindowFeature(Window.FEATURE_NO_TITLE);

编辑正如@zgc7009指出,requestWindowFeature()之前,必须调用setContentView()

+1

我认为它需要的setContentView之前也是如此,不是吗? – zgc7009 2014-10-10 16:39:45

+0

是的,根据文档“这是一个方便调用getWindow()。requestFeature()”,并且requestFeature必须在setContentView之前调用http://developer.android.com/reference/android/view/Window.html# requestFeature(int) – 2014-10-10 16:42:26

+0

它的工作,但我只有一个主要活动和5个片段,我需要隐藏在飞溅片段。显示操作栏后可以处理活动吗? – WhatsUp 2014-10-10 17:09:09

0

最后我改变我的应用程序的设计,我有我的主要活动之前创建一个activty(闪活动),以及删除飞溅片段。

它适用于requestWindowFeature(Window.FEATURE_NO_TITLE);

谢谢!

0

我认为,在片段我们必须声明如下因素:

((AppCompatActivity) getActivity()).getSupportActionBar().show();