0

Cette Activity fonctionne en plein écran. Puisque l'altitude est manquante dans Kitkat, le ViewPager va au-dessus du Toolbar.Barre d'outils derrière ViewPager kitkat

Voici ma mise en page:

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

Voici à quoi il ressemble: screenshot

Tous les conseils sur la façon dont je peux résoudre ce problème?

Répondre

1

Les éléments de RelativeLayout sont classés en Z. Defaulr oder est: les articles précédents derrière les derniers. Votre barre d'outils est la première dans RelativeLayout, elle est donc derrière toutes les autres vues.

Il existe trois solutions. Vous pouvez utiliser n'importe lequel d'entre eux.

  1. vues Réorganiser dans RelativeLayout: mouvement toolbat à la fin:

    <?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. Appel toolbar.bringToFront() quelque part dans onCreate() (si vous vous utilisez cette mise en page pour une activité). Exemple:

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    
        setContentView(R.layout.layout_activity);// your resource name here 
    
        View toolbar = findViewById(R.id.toolbar); 
        toolbar.bringToFront(); 
    
        .... 
    } 
    
  3. Appel ViewGroup :: bringChildToFront pour les parents de vue de la barre d'outils, quelque part dans onCreate. Si vous utilisez cette mise en page onCreate, le code de l'activité devrait être:

    @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

toutes les solutions fonctionnent. Merci! – dnld

0

Vous feriez mieux de fournir le code correspondant à votre vue personnalisée HackyViewPager pour mieux comprendre votre problème. Mais je suppose qu'il n'y a pas de versions différentes de systèmes d'exploitation qui comptent les boutons en bas (HOME, BACK, MENU). À partir de Lollipop, les boutons contextuels font partie de l'écran, tandis que dans les versions antérieures, ils étaient hors de l'écran. J'espère que cela aide.

+0

Le 'HackyViewPager' n'a pas rien d'étrange, ce n'est pas le problème. – dnld