2017-10-04 6 views
0

J'essaye de placer mon RecyclerView horizontal au centre de RelativeLayout. Mais certains éléments de liste obtiennent le centre comme je veux et certains d'entre eux ne sont pas mis au centre. Ça ressemble à ça. enter image description herecentre horizontal RecyclerView dans RelativeLayout

Mon XML est à la recherche comme celui-ci

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    android:background="?attr/colorPrimaryDark" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 


    <TextView 
     android:textColor="?attr/TextColor" 
     android:layout_width="wrap_content" 
     android:layout_height="@dimen/toolbar" 
     android:text="=: Change Your Font :=" 
     android:textStyle="bold" 
     android:layout_centerHorizontal="true" 
     android:gravity="center" 
     android:textSize="@dimen/appName" 
     android:id="@+id/title" 
     android:padding="@dimen/lblTime" /> 

    <LinearLayout 
     android:background="?attr/TextColor" 
     android:orientation="vertical" 
     android:layout_below="@+id/title" 
     android:layout_above="@+id/dialog_dismiss" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_marginTop="2dp" 
      android:layout_weight="7"> 


      <TextView 
       android:scrollbars="vertical" 
       android:id="@+id/font_text_quote" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:autoLink="web" 
       android:linksClickable="true" 
       android:gravity="center" 
       android:layout_centerVertical="true" 
       android:padding="10dp" 
       android:text="@string/sample" 
       android:textColor="?attr/colorPrimaryDark" 
       android:textSize="@dimen/newMainText" 
       android:textStyle="bold" /> 
     </RelativeLayout> 

     <RelativeLayout 
      android:layout_gravity="center" 
      android:background="?attr/colorPrimary" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_marginTop="2dp" 
      android:layout_weight="1"> 

     <android.support.v7.widget.RecyclerView 
      android:layout_marginLeft="10dp" 
      android:layout_marginStart="10dp" 
      android:id="@+id/hsv_font_bartextview" 
      android:layout_width="match_parent" 
      android:layout_height="@dimen/toolbar" 
      android:layout_gravity="center" 
      android:visibility="visible" /> 
     </RelativeLayout> 

    </LinearLayout> 




    <TextView 
     android:id="@+id/dialog_dismiss" 
     android:layout_width="wrap_content" 
     android:layout_height="@dimen/toolbar" 
     android:text="Dismiss" 
     android:textStyle="bold" 
     android:textColor="?attr/TextColor" 
     android:padding="@dimen/lblTime" 
     android:textSize="@dimen/appName" 
     android:gravity="center" 
     android:layout_marginEnd="@dimen/lblTime" 
     android:layout_marginRight="@dimen/lblTime" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentRight="true"/> 

</RelativeLayout> 

Mon XML article enfant est comme ce

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    style="@style/SelectableItemBackground" 
    android:gravity="center" 
    android:orientation="vertical" 
    > 
<android.support.v7.widget.CardView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/cardView" 
    android:layout_gravity="center_vertical" 

    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="10dp" 
    android:layout_marginStart="10dp"> 


    <TextView 
     android:id="@+id/textView" 
     android:layout_width="100dp" 
     android:layout_height="40dp" 
     android:layout_gravity="center_vertical" 
     android:background="?attr/TextColor" 
     android:gravity="center" 
     android:text="hello" 
     android:textColor="?attr/colorPrimaryDark" 
     android:textSize="21sp" 
     android:visibility="visible" /> 

</android.support.v7.widget.CardView> 
    </LinearLayout> 

Mon code Java pour c'est comme ci-dessous

private void showGotoPageDialog() { 

     Typeface font = Typeface.createFromAsset(SettingsActivity.this.getAssets(), constant.font); 
     final Dialog mDialog = new Dialog(SettingsActivity.this); 
     mDialog.setContentView(R.layout.font_dialogue); 
     mDialog.getWindow().setLayout(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
     LinearLayoutManager layoutManager 
       = new LinearLayoutManager(SettingsActivity.this, LinearLayoutManager.HORIZONTAL, false); 
     hsv_font_bartextview= mDialog.findViewById(R.id.hsv_font_bartextview); 
     hsv_font_bartextview.setLayoutManager(layoutManager); 

     final TextView font_text_quote; 
     TextAdapterTextview textAdaptertextview = new TextAdapterTextview(SettingsActivity.this, Globle.getFontArray()); 
     hsv_font_bartextview.setAdapter(textAdaptertextview); 

     font_text_quote= mDialog.findViewById(R.id.font_text_quote); 
     font_text_quote.setTypeface(font); 
     textAdaptertextview.setOnClickLIstner(new OnTClickLIstner() { 
      @Override 
      public void onClick(View v, String image, int position) { 
       constant.font=image; 
       Typeface newfont = Typeface.createFromAsset(SettingsActivity.this.getAssets(), constant.font); 
       font_text_quote.setTypeface(newfont); 

      } 
     }); 

     mDialog.show(); 
     TextView dismiss = (TextView) mDialog.findViewById(R.id.dialog_dismiss); 
     dismiss.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       mDialog.dismiss(); 
       Intent intent = new Intent(SettingsActivity.this, HomeActivity.class); 
       intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
       startActivity(intent); 
      } 
     }); 
    } 

} 

Adaptateur Java codes

Vous pouvez voir que les deux premiers éléments mettent au centre ainsi que les deux derniers éléments également au centre, mais le troisième est en haut au lieu du centre. Faites-moi savoir si quelqu'un a l'idée de le corriger.

EDIT son réglage au centre correct lorsque je fais défiler des éléments et que j'appuie sur un élément.

Merci

+2

ce problème n'est pas lié à l'erreur de mise en page d'activité/fragment, définissez la disposition de l'élément recyclerview, l'adaptateur recyclerView et le code pour initier le recyclerview dans onCreate pour vous aider ces informations ne suffisent pas pour résoudre le problème –

+0

@AmjadOmari J'ai ajouté le code java lié. S'il vous plaît vérifier – Priya

+1

et où est le code de l'adaptateur s'il vous plaît? –

Répondre

1

changement android: layout_height = "@ dimen/barre d'outils"

à android: layout_height = "match_parent"

<android.support.v7.widget.RecyclerView 
      android:layout_marginLeft="10dp" 
      android:layout_marginStart="10dp" 
      android:id="@+id/hsv_font_bartextview" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_gravity="center" 
      android:visibility="visible" /> 

cela devrait résoudre le problème.

+0

Oui monsieur! Il a résolu le problème et merci beaucoup pour m'aider pour trouver le problème même avec TeamViewer. Vous êtes génial :) – Priya

0

Pour RelativeLayout l'attribut gravité est défini par:

android:layout_centerInParent="true" 
+0

S'il vous plaît vérifier ma question éditée monsieur – Priya