2016-06-04 4 views
0

я привязывания, чтобы скрыть свою панель действий во время выполнения, когда я перейти от tab2 к tab1 или TAB3, но его оставляя пустое пространствоДействие бар не скрывается полностью

мою активность: (с TabLayout и 3 фрагментов)

enter image description here

переключился на другую вкладку, панель действий скрыта сейчас, но есть Пустое пространство:

enter image description here

am используя actionBar.hide/actionBar.show, любой ключ, как правильно удалить это дополнительное пространство ??? если то, что я пытаюсь достичь невозможно, то, пожалуйста, руководство меня любой альтернативный способ

коды:

ActionBar actionBar; 
........ 
........ 
actionBar = getSupportActionBar(); 
........ 
........ 
      @Override 
      public void onTabSelected(TabLayout.Tab tab) { 
       viewPager.setCurrentItem(tab.getPosition()); 

       if (tab == tab2){ 
        actionBar.show(); 


       }else { 
        actionBar.hide(); 

       }}; 

Добавлено Xml коды:

MainActivity, который включает в себя content_main

<?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" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context="MainActivity" 
    android:animateLayoutChanges="true"> 

    <include layout="@layout/content_main" /> 

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

content_main :

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

<RelativeLayout 
android:id="@+id/main_layout" 
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" 
tools:context=".MainActivity" 
    android:animateLayoutChanges="true"> 

<android.support.design.widget.TabLayout 
    android:id="@+id/tabs" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="#e4e4e4" 
    android:elevation="6dp" 
    android:minHeight="?attr/actionBarSize" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    android:fillViewport="false" 
    android:clickable="false" /> 

<android.support.v4.view.ViewPager 
    android:id="@+id/viewpager" 
    android:layout_width="match_parent" 
    android:layout_height="fill_parent" 
    android:layout_below="@id/tabs"/> 

</RelativeLayout> 
+0

вы можете разместить свой код? –

+0

вставьте свой код –

+0

@SathishKumarJ проверьте обновленный вопрос –

ответ

1

Попробуйте @, где вы хотите, чтобы скрыть/показать ActionBar,

requestWindowFeature(Window.FEATURE_ACTION_BAR); 

// delaying the hiding of the ActionBar 
Handler h = new Handler(); 
h.post(new Runnable() {  
    @Override 
    public void run() { 
     getActionBar().hide();//OR 
     //getActionBar().show(); 
    } 
}); 

Если активность

getSupportActionBar().hide(); 
or 
getActionBar().hide(); 

Если фрагмент

getActivity().getSupportActionBar().hide(); 
or 
getActivity().getActionbar().hide(); 
+0

эй @Sathish спасибо за ответ, ну 'h.post' здесь сообщение, вызывающее ошибку' не может разрешить метод' и ' Handler' показывает ошибку 'Handler является абстрактным, не может быть instantiated' и заставить меня реализовать методы –

+0

' Handler ч = Handler() { @Override общественного аннулируются близко() { } @Override общественного недействительными flush() { } @Override public void publish (запись в LogRecord) { } }; h.пост (новый Runnable() { @Override общественности недействительным запуска() { getActionBar() скрыть();.. // ИЛИ // getActionBar() шоу();} }); ' –

+1

использование импорта android.os.Handler; –

1

Try This

actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
actionBar.setDisplayShowTitleEnabled(false); 
actionBar.setDisplayShowHomeEnabled(false); 
+0

теперь он показывает еще большее пространство после скрытия панели действий: D –

+0

Добавить код actionBar.hide (); –

+0

сделано, все равно никаких изменений –

1

В моих фрагментах это, как я скрыть ActionBar и это работает прекрасно

// MainActivity is the activity which contains fragment 
ActionBar actionBar = ((MainActivity) getActivity()).getSupportActionBar(); 
     if (actionBar != null) { 
      actionBar.hide(); 
     } 
+0

Бросьте его сокрытие actionBar, но все же его оставляя незапланированное пространство –

+0

можете ли вы разместить xml, в котором настроена 'TabLayout'? – Max

+0

, пожалуйста, проверьте обновленный Question @Anders –

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