2017-05-06 1 views
0

Comme le titre l'indique, je n'arrive pas à réduire la barre de progression du tout. Actuellement, il continue à remplir tout l'écran. Je suppose qu'il a quelque chose à voir avec moi en l'utilisant dans un viewstub? Quoi qu'il en soit, voici mon code.ProgressBar (Spinner) remplit tout l'écran

  • Ceci est ma disposition principale. J'utilise viewstub et ne le gonfler lorsque le framelayout change fragments

    <android.support.v4.widget.DrawerLayout 
    .... 
        <FrameLayout 
    .... 
        /> 
    
        <ViewStub android:id="@+id/loadSpinner" 
         android:inflatedId="@+id/subView" 
         android:layout="@layout/progress_spinner" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" /> 
    .... 
    
    </android.support.v4.widget.DrawerLayout> 
    
  • Voici la barre de progression (progress_spinner.xml) qui sera chargé dans le viewstub

    <ProgressBar 
        xmlns:android="http://schemas.android.com/apk/res/android" 
        android:id="@+id/progressSpinner" 
        style="?android:attr/progressBarStyleSmall" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_centerHorizontal="true" 
        android:layout_centerVertical="true" 
        android:visibility="gone" 
        android:indeterminateDrawable="@drawable/custom_spinner"> 
    </ProgressBar> 
    
  • C'est mon custom_spinner.xml, que j'espérais fixerait la taille de la turbine

    <rotate xmlns:android="http://schemas.android.com/apk/res/android" 
        android:fromDegrees="0" 
        android:pivotX="50%" 
        android:pivotY="50%" 
        android:duration="1" 
        android:toDegrees="360" > 
    
        <shape 
         android:innerRadiusRatio="3" 
         android:shape="ring" 
         android:thicknessRatio="8" 
         android:useLevel="false" > 
        <size 
         android:height="48dp" 
         android:width="48dp" /> 
    
        <gradient 
         android:centerColor="@color/color_preloader_center" 
         android:centerY="0.50" 
         android:endColor="@color/color_preloader_end" 
         android:startColor="@color/color_preloader_start" 
         android:type="sweep" 
         android:useLevel="false" /> 
    </shape> 
    

  • C'est ce que je reçois, il remplit toujours tout l'écran enter image description here

+1

Je ne peux pas être certain de votre mise en page épurée, mais c'est probablement dû au fait qu'il est un enfant direct de 'DrawerLayout'. Tout enfant direct de 'DrawerLayout' qui n'est pas un tiroir est disposé pour le remplir. Déplacez-le dans le contenu 'ViewGroup', si vous voulez qu'il garde sa taille comme vous l'avez défini. –

Répondre

1

Comme micro suggeste le faire comme

<android.support.v4.widget.DrawerLayout 
    .... 
     <FrameLayout 
    .... 
     /> 
    <FrameLayout> 
    <ViewStub android:id="@+id/loadSpinner" 
      android:inflatedId="@+id/subView" 
      android:layout="@layout/progress_spinner" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 
     </FrameLayout> 

    .... 

    </android.support.v4.widget.DrawerLayout>