1

Ich versuche, ein Koordinatorlayout und ein AppBarLayout in einem Fragment zu verwenden. Mein Ziel ist es, eine Kopfzeile zu haben, die beim Scrollen ausgeblendet werden kann, aber die Titelleiste, die sich innerhalb der Aktivität befindet und für andere Fragmente benötigt wird, zu behalten.Layout verschwindet nicht vollständig, wenn Koordinator verwendet wird Layout in Fragment

Mein Problem ist, dass, wenn ich nach unten scrolle, die Kopfzeile nicht vollständig ausgeblendet ist. Dort befindet sich ein Teil mit Statusleiste Höhe, die sichtbar bleibt. Ich weiß nicht, wie ich es komplett verschwinden lassen kann.

Hier sind einige scrren Capture es verständlicher zu machen:

header fully displayed

scrolled down

Hier ist das Layout 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" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@android:color/holo_blue_dark" 
     android:fitsSystemWindows="true"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" 
       app:contentScrim="?attr/colorPrimary" 
       app:expandedTitleMarginStart="@dimen/general_padding" 
       app:layout_scrollFlags="scroll|exitUntilCollapsed" 
       app:layout_behavior="@string/appbar_scrolling_view_behavior" 
       android:fitsSystemWindows="true"> 

       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="25dp" 
        android:layout_marginTop="100dp" 
        android:layout_margin="@dimen/general_padding" 
        android:background="@android:color/holo_green_light" 
        android:orientation="vertical"> 
       </LinearLayout> 

      </LinearLayout> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:tabMode="fixed" 
      app:tabGravity="fill"/> 

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

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

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

Und die onCreateView() -Methode von der Fragment, das dieses Layout verwendet:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

    View view = inflater.inflate(R.layout.fragment_tabs, container, false); 
    mUnbinder = ButterKnife.bind(this, view); 

    mTabsPresenter.subscribe(this); 

    TabsPagerAdapter adapter = new TabsPagerAdapter(getChildFragmentManager()); 
    mPager.setAdapter(adapter); 
    mTabs.setupWithViewPager(mPager); 
    mTabs.getTabAt(0).setText("_Maintenance"); 
    mTabs.getTabAt(1).setText("_History"); 
    mTabs.getTabAt(2).setText("_Costs"); 

    setHasOptionsMenu(true); 

    return view; 
} 

Kann mir jemand bei diesem Problem helfen?

Danke

+0

Haben Sie versucht, 'android: layout_marginTop =" 100dp "' durch Setzen von Eltern-Padding zu ersetzen? – Gotiasits

+0

Ja, ich habe viele Dinge mit Rand und Padding versucht, aber ich habe keine Lösung gefunden –

Antwort

0

Bitte versuchen "layout_marginTop = -8dp" in Ihrem tablayout verwenden. Eine einfache Problemumgehung.

+0

Das funktioniert mit -24dp. Danke –

+0

Awsm. Bitte markiere meine Antwort als korrekt. – A2N

Verwandte Themen