0

Activity以全屏模式運行。由於海拔在Kitkat中缺失,ViewPager高於ToolbarViewPager kitkat後面的工具欄

這裏是我的佈局:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/PhotoPager_Layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:theme="@style/ThemeOverlay.AppCompat" 
    > 
    <include 
     android:id="@+id/toolbar" 
     layout="@layout/toolbar" 
     android:background="@color/md_dark_appbar" 
     android:windowActionBarOverlay="true" 
     /> 

    <com.horaapps.leafpic.Views.HackyViewPager 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/photos_pager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 
</RelativeLayout> 

這是什麼樣子: screenshot

我如何能解決這個問題有什麼建議?

回答

1

RelativeLayout中的項目是z順序的。 Defaulr oder是:較早的項目後面的項目。 您的工具欄首先位於RelativeLayout中,因此它位於任何其他視圖的後面。

有三種解決方案。你可以使用它們中的任何一個。在RelativeLayout的

  1. 重新排序的看法:移動toolbat到結束:

    <?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/PhotoPager_Layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:theme="@style/ThemeOverlay.AppCompat" 
    > 
    
        <com.horaapps.leafpic.Views.HackyViewPager 
         xmlns:android="http://schemas.android.com/apk/res/android" 
         android:id="@+id/photos_pager" 
         android:layout_width="match_parent" 
         android:layout_height="match_parent"/> 
    
        <include 
         android:id="@+id/toolbar" 
         layout="@layout/toolbar" 
         android:background="@color/md_dark_appbar" 
         /> 
    </RelativeLayout> 
    
  2. 呼叫toolbar.bringToFront()在某處的onCreate()(如果您使用此佈局的活動)。例如:

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    
        setContentView(R.layout.layout_activity);// your resource name here 
    
        View toolbar = findViewById(R.id.toolbar); 
        toolbar.bringToFront(); 
    
        .... 
    } 
    
  3. 呼叫的ViewGroup :: bringChildToFront的某處的onCreate工具欄視圖的父。如果您使用此佈局在活動的onCreate,則代碼應該是:

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        setContentView(R.layout.layout_activity);// your resource name here 
        RelativeLayout root = findViewById(R.id.PhotoPager_Layout); 
        View toolbar = findViewById(R.id.toolbar); 
        root.bringChildToFront(toolbar); 
    
        .... 
    } 
    
+0

所有解決方案的作品。謝謝! – dnld

0

您最好爲您的HackyViewPager自定義視圖提供代碼,以更好地理解您的問題。但我的猜測是,在那裏你不會考慮不同的操作系統版本計算底部的軟按鈕(HOME,BACK,MENU)。從棒棒糖開始,軟按鈕是屏幕的一部分,而在早期版本中,它們不在屏幕中。 希望這有助於。

+0

的'HackyViewPager'並沒有什麼奇怪的,這是沒問題的。 – dnld

相關問題