2016-04-10 19 views
3

Uygulamamda bir etkinliğim var. Bu aktivite için teması öncesi L normaldir, ancak ile, L, yukarıda değiştirileceğini:fitsSystemWindows, eklenen fragmanlarda çalışmaz

... 
<item name="android:windowDrawsSystemBarBackgrounds">true</item> 
<item name="android:statusBarColor">@color/statusTrans</item> 
... 

Bu aktivite, önemli bir etki vermek için bu gibi bir düzen (fsw düğüm fitsSystemWindows anlamına gelir).

CoordinatorLayout (fsw) 
    L AppBarLayout (fsw) 
     L CollapsingToolbarLayout (fsw) 
      L ImageView (fsw) 
      L Toolbar 
     L TabLayout 
    L ViewPager 
    L FAB 

şu ki,

CoordinatorLayout (fsw) 
    L AppBarLayout (fsw) 
     L CollapsingToolbarLayout (fsw) 
      L FrameLayout 
      L Toolbar 
     L TabLayout 
    L NestedScrollView 

ilk düzeni statusBar ve çeken bu düzenine sahip android.R.id.content ekleyerek, bu etkinliğe bir işlem aracılığı ile, tam ekran DialogFragment eklemek olduğu daha sonra Toolbar'un beklendiği gibi (yani, insets uygulanır), ancak eklenen parça düzeni Toolbar'u doğrudan statusBar'ın altına çeker ve doğru çizmeyi başaramıyorum.

Neyi yanlış yaptığımı bilmiyorum. Heres problemi gösteren iki ekran görüntüsü.

OneTwo

.

AYRICA

(BONUS SORU!) Aynı Etkinlikte

, bir ScrollingViewBehavior olması Viewpager ayarlayın. Viewpager'u dolduran fragmanlar, bunlardan birini kapatan bir ViewFlipper ürününe sahiptir: bir yükleme Görünümü (ProgressBar), contentView (RecyclerView) ve emptyView (LinearLayout). Bu, eğer içeriği varsa, etkinliğin istenen kaydırma etkisine sahip olmasını sağlar.

BoşView ile ilgili sorun ortaya çıkıyor çünkü doğru şekilde ortalamıyor. Bir resim ekledim.

Bu davranışı nasıl düzeltebilirim (veya kesebilirim)?

Three

cevap

1

senin senin fragman bir koordinatör düzeni çıkmasıdır emin olun değiştirilmesi yerde. Örneğin, xml aşağıdaki gibiyse:

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    tools:ignore="MissingPrefix"> 

    <FrameLayout 
     android:id="@+id/fl_layout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

sonra sorunu çözmek için bir coordinatorlayout o sarın.