0

Diese Activity läuft im Vollbildmodus. Da die Höhe in Kitkat fehlt, geht die ViewPager über die Toolbar hinaus.Symbolleiste hinter ViewPager kitkat

Hier ist mein Layout:

<?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> 

Dies ist, wie es aussieht: screenshot

Irgendwelche Tipps, wie ich dieses Problem lösen kann?

Antwort

1

Elemente in RelativeLayout sind z-geordnet. Defaulr oder ist: frühere Artikel hinter späteren. Ihre Symbolleiste befindet sich zuerst in RelativeLayout, also hinter anderen Ansichten.

Es gibt drei Lösungen. Sie können jeden von ihnen verwenden.

  1. Reorder Blick in RelativeLayout: move toolbat zu Ende:

    <?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. Anruf toolbar.bringToFront() irgendwo in onCreate() (wenn Sie Sie verwenden dieses Layout für eine Aktivität). Beispiel:

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    
        setContentView(R.layout.layout_activity);// your resource name here 
    
        View toolbar = findViewById(R.id.toolbar); 
        toolbar.bringToFront(); 
    
        .... 
    } 
    
  3. Aufruf Viewgroup :: bringChildToFront für Eltern von Symbolleiste Ansicht irgendwo in onCreate. Wenn Sie das Layout in der Aktivität des onCreate verwenden, dann sollte der Code sein:

    @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

alle Lösungen funktioniert. Vielen Dank! – dnld

0

Sie besser den Code für Ihre benutzerdefinierte Ansicht HackyViewPager bereitstellen, um Ihr Problem besser zu verstehen. Aber ich schätze, dass Sie dort nicht verschiedene Betriebssystemversionen betrachten, die die Soft-Buttons am unteren Rand zählen (HOME, BACK, MENU). Ab Lollipop sind die Soft-Buttons Teil des Bildschirms, während sie in früheren Versionen nicht auf dem Bildschirm waren. Hoffe, das hilft.

+0

Die 'HackyViewPager' hat nicht nichts Ungewöhnliches, es ist nicht das Problem. – dnld