Неправильные представления позиции в RecycleView - PullRequest
1 голос
/ 06 апреля 2020

У меня есть recyclerview, и я написал ниже xml код для пользовательского интерфейса строк. пользовательский интерфейс строки отображается в части дизайна как справа налево (я имею в виду сначала показать актив, а затем номер актива), но когда я запускаю программу в эмуляторе, я вижу представления в неправильной позиции (я имею в виду сначала показать номер актива, а затем актив). Почему? В чем моя проблема?

Часть RecyclerView:

//Code
<androidx.cardview.widget.CardView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_weight="1"
        android:layout_height="0dp"
        android:layout_margin="15dp"
        app:elevation="2dp"
        app:cardBackgroundColor="@color/cardViewBackground"
        app:cardCornerRadius="6dp"
        app:cardElevation="2dp"
        app:cardUseCompatPadding="true"
        app:contentPadding="3dp">
        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/sdp_showalldevices_activity_lstTasks"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="5dp"
            android:background="@color/gray_dark"
            android:cacheColorHint="@android:color/transparent"
            android:divider="@color/darkText"
            android:dividerHeight="5dp"
            android:layoutDirection="rtl">
        </androidx.recyclerview.widget.RecyclerView>
    </androidx.cardview.widget.CardView>
 //code...

recyclerView_row. xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/cardViewBackground"
android:orientation="vertical">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
    android:layout_marginRight="10dp"
    android:orientation="horizontal"
    android:layout_gravity="right"
    android:gravity="right">
    <TextView
        android:id="@+id/nameTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:gravity="right"
        android:layout_marginRight="5dp"
        android:text="÷رینتر"
        android:textColor="@color/gray_text"
        android:textSize="15dp"></TextView>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:gravity="right"
        android:text="@string/name"
        android:textColor="@color/gray_text"
        android:textSize="15dp"></TextView>
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
    android:layout_marginRight="10dp"
    android:orientation="horizontal"
    android:layout_gravity="right"
    android:gravity="right">
    <TextView
        android:id="@+id/qcSerialTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:gravity="right"
        android:layout_marginRight="5dp"
        android:text="145463254654"
        android:textColor="@color/gray_text"
        android:textSize="15dp"></TextView>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:gravity="right"
        android:text="@string/QcSerial"
        android:textColor="@color/gray_text"
        android:textSize="15dp"></TextView>
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
    android:layout_marginRight="10dp"
    android:layout_marginBottom="5dp"
    android:orientation="horizontal"
    android:layout_gravity="right"
    android:gravity="right">
    <TextView
        android:id="@+id/assetNumberTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:gravity="right"
        android:layout_marginRight="5dp"
        android:text="656dfd54"
        android:textColor="@color/gray_text"
        android:textSize="15dp"></TextView>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:gravity="right"
        android:text="@string/AssetNumber"
        android:textColor="@color/gray_text"
        android:textSize="15dp"></TextView>
</LinearLayout>

изображение части дизайна recyclerView_row. xml

enter image description here

образ программы запуска:

enter image description here

Ответы [ 2 ]

1 голос
/ 06 апреля 2020

если вы создаете приложение на арабском c, урду, иврите и т. Д. c ... или на любом языке, написанном справа налево, вы должны установить android:supportsRtl на true, вот как вы укажите расположение справа налево, и значение этого атрибута по умолчанию равно false.

<application android:allowBackup="true"
        android:label="@string/app_name"
        android:supportsRtl="true"
        tools:replace="android:supportsRtl">
                 .......
    </application>

Редактировать

просто позвоните setReverseLayout(true) для вашего LayoutManager:

LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, true);
layoutManager.setReverseLayout(true);
0 голосов
/ 06 апреля 2020

Попробуйте этот код:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:layout_marginRight="10dp"
        android:orientation="horizontal"
        android:layout_gravity="right"
        android:gravity="right">


        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:gravity="right"
            android:text="name"
            android:textSize="15dp"></TextView>
        <TextView
            android:id="@+id/nameTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:gravity="right"
            android:layout_marginRight="5dp"
            android:text="نام:"
            android:textSize="15dp"></TextView>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:layout_marginRight="10dp"
        android:orientation="horizontal"
      >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:gravity="right"
            android:text="QcSerial:"
            android:textSize="15dp"></TextView>
        <TextView
            android:id="@+id/qcSerialTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:gravity="right"
            android:layout_marginRight="5dp"
            android:text="145463254654"
            android:textSize="15dp"></TextView>


    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:layout_marginRight="10dp"
        android:layout_marginBottom="5dp"
        android:orientation="horizontal">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:gravity="right"
            android:text="AssetNumber:"
            android:textSize="15dp"></TextView>
        <TextView
            android:id="@+id/assetNumberTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:gravity="right"
            android:layout_marginRight="5dp"
            android:text="656dfd54"
            android:textSize="15dp"></TextView>

    </LinearLayout>
</LinearLayout>

Это предварительный просмотр моего ответа: enter image description here

И это вывод моего ответа в эмуляторе: enter image description here

...