2017-05-25 1 views
0

J'ai un HorizontalView. À l'intérieur, il y a un LinearLayout où j'ajoute plusieurs ImageView par le code. Je veux implémenter les boutons NEXT et PREVIOUS pour qu'il défile automatiquement. Je veux aussi cacher les boutons quand j'arrive à la fin de mon HorizontalView.Faire le bouton NEXT dans HorizontalView pour faire défiler les différents ImageView

http://imgur.com/a/313af

Je ne sais pas comment le faire. Editer: Cette CardView est à l'intérieur d'une vue recycleur.

Voici le XML

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/card_view" 
    android:layout_width="match_parent" 
    android:layout_height="350dp" 
    android:layout_gravity="center" 
    android:layout_margin="8dp" 
    card_view:cardCornerRadius="4dp" 
    > 

    <GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:columnCount="1" 
     android:paddingTop="5dp"> 

     <TextView 
      android:id="@+id/nombrecito" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center" 

      android:maxLines="1" 
      android:textAppearance="@style/TextAppearance.AppCompat" 
      android:textSize="20sp" 
      android:fontFamily="fonts/rugs_font.otf"/> 

     <RelativeLayout> 

      <HorizontalScrollView 
       android:id="@+id/horizontal_scroll" 
       android:layout_width="wrap_content" 
       android:layout_height="254dp"    > 

       <LinearLayout 
        android:id="@+id/linear" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:orientation="horizontal" 

        android:fitsSystemWindows="false"> 

        <ImageView 

         android:id="@+id/foto" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_marginLeft="-10dp" 
         android:contentDescription="fotografía" 
         android:scaleType="fitEnd" 
         android:src="@android:drawable/ic_menu_camera" /> 
       </LinearLayout> 

      </HorizontalScrollView> 
      <ImageButton 
       android:shape="ring" 
       android:layout_width="40dp" 
       android:layout_height="40dp" 
       android:background="#ceb06a" 
       android:layout_alignParentLeft="true" 
       android:layout_centerVertical="true" 
       android:src="@drawable/ic_keyboard_arrow_left_black_48dp"/> 
      <ImageButton 
       android:shape="ring" 
       android:layout_width="40dp" 
       android:layout_height="40dp" 
       android:background="#ceb06a" 
       android:layout_alignParentRight="true" 
       android:layout_centerVertical="true" 
       android:src="@drawable/ic_keyboard_arrow_right_black_48dp"/> 
     </RelativeLayout> 


     <GridLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:rowCount="1"> 

      <ImageButton 
       android:id="@+id/btnLike" 
       android:layout_width="48dp" 
       android:layout_height="48dp" 
       android:background="@android:color/transparent" 
       android:inAnimation="@anim/slide_in_likes_counter" 
       android:outAnimation="@anim/slide_out_likes_counter" 
       android:src="@drawable/ic_heart_outline_grey" /> 

      <ImageButton 
       android:id="@+id/btnShare" 
       android:layout_width="48dp" 
       android:layout_height="48dp" 
       android:background="@android:color/transparent" 
       android:onClick="share" 
       android:src="@android:drawable/ic_menu_share" /> 

     </GridLayout> 
    </GridLayout> 
</android.support.v7.widget.CardView> 
+0

pourquoi ne pas utiliser pager vue pour cela? –

+0

Merci. Je vais essayer et voir comment ça marche. Je vous tiendrai au courant – Tostadora

+0

Vous pouvez essayer recycleur voir – Techgeek

Répondre

0

Je pense que la meilleure façon de mettre en œuvre ce cas, est d'utiliser RecyclerView, parce ViewPager montrer wont vous deux photos sans indiquer à certains pic

Faire en position horizontale avec

mRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, true) 

add recycleur et deux boutons RelativeLayout, mettre des boutons sur le recycleur dans positins correct

par exemple, pour le bouton gauche utiliser

android:layout_alignParent=true & android:layout_centerHorizontal="true"

Pour faire fonctionner les boutons fonctionnent smth utilisent comme

recyclerView.scrollToPosition(position); 
+0

Merci. Je vais l'essayer. Mais j'ai déjà une vue recycleur. A l'intérieur sont tous ces cardView. Sera-ce un problème? – Tostadora

+0

Je pense que vous devriez faire recyclerview horizontal dans un recyclerview vertical, maintenant vous avez juste un scrollview horizontal dans la vue recycleur. comme ici https://stackoverflow.com/questions/41714993/horizontal-recyclerview-inside-vertical-recyclerview [ –

+0

Je le change et maintenant fonctionne un peu. J'ai ceci: holder.btnPrev.setOnClickListener (nouveau View.OnClickListener() { @Override public void onClick (Voir v) { holder.recyclerView.scrollToPosition (1);} }); Pour 0 ne fonctionne pas. Je ne sais pas pourquoi – Tostadora

0

Je regardais l'image et je vous recommande d'utiliser ViewPager pour cela.

+0

Merci. Je vais essayer et voir comment ça marche. Je vous tiendrai au courant – Tostadora