0

У меня есть фрагмент с следующим макетом, к которому я добавляю два фрагмент с помощью зрения пейджера:Как скрыть панель действий, как в Whatsapp?

<android.support.design.widget.CoordinatorLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 
<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 


<android.support.design.widget.TabLayout 
    android:id="@+id/tab_layout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 

    android:background="#2096f3" 
    android:elevation="6dp" 
    android:minHeight="?attr/actionBarSize" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/> 
</android.support.design.widget.AppBarLayout> 
<android.support.v4.view.ViewPager 
    android:id="@+id/pager" 
    android:layout_width="match_parent" 
    android:layout_height="fill_parent" 
    android:layout_below="@id/tab_layout" 
    /> 

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

И в коде:

TabLayout tabLayout = (TabLayout) rootView.findViewById(R.id.tab_layout); 
    tabLayout.addTab(tabLayout.newTab().setText(tabs[0])); 
    tabLayout.addTab(tabLayout.newTab().setText(tabs[1])); 
    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); 

    viewPager = (ViewPager) rootView.findViewById(R.id.pager); 

    adapter = new MyViewPagerAdapter(getFragmentManager(),2); 
    viewPager.setAdapter(adapter); 

У меня есть Scrollview в фрагментах в представлении пейджер. Я хочу, чтобы панель действий спряталась, когда я начинаю прокручивать. Как достичь этого?

У меня есть панель инструментов, в которую я добавляю несколько фрагментов. Как я могу настроить его получить ожидаемый результат:

Панель инструментов:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar  xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:background="@color/background_floating_material_dark" 
android:elevation="4dp" 
android:paddingTop="1dp" 
app:layout_scrollFlags="scroll|enterAlways"> 

+3

Вы даже попробовать прибегая к помощи? 'android hide actionbar' –

+0

Я попытался скрыть панель действий, когда пользователь начинает прокручивать вниз. Но поведение было очень резким. – Panda

ответ

1

Вы можете использовать собственный определенный стиль для этого:

<resources> 
<style name = "AppTheme" parent = "android:Theme.Holo.Light.DarkActionBar"></style> 
<style name = "HiddenActionBar" parent = "@android:style/Theme.Holo.Light"> 
    <item name = "android:windowActionBar">false</item> 
    <item name = "android:windowNoTitle">true</item> 
</style> 

</resources> 

И использовать его на AndroidManifest .xml:

<application 
android:icon = "@drawable/ic_launcher" 
android:label = "@string/app_name" 
android:theme = "@style/HiddenActionBar"> 
0

Этот XML-код работает правильно для меня:

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

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:elevation="0dp" 
    android:id="@+id/appBarLayout" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

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

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

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

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

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

У меня нет этой панели инструментов. Я добавляю вкладки динамически: tabLayout.addTab (tabLayout.newTab(). SetText («Tab 1»)); tabLayout.addTab (tabLayout.newTab(). SetText ("Tab 2")); – Panda

+0

@Panda, как вы сказали, «вы хотите, чтобы панель действий скрывалась», поэтому вы должны иметь «Панель инструментов» в действии с помощью «noActionBar». Как я показал вам код. –

+0

спасибо Vipul. Это работает. Но поскольку я добавляю вкладки вверх в код, динамически, есть ли способ справиться с этим из кода? – Panda