Reputation: 404
I have a recyclerview
and I wrote below xml
code for Rows UI. the row UI shows in the design part like right to left (I mean first show asset and then asset number) but when I run program in an emulator, I see views in incorrect position (I mean first show asset number and then asset). Why? What is my problem?
RecyclerView part:
//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>
the image of the design part of recyclerView_row.xml
the image of run program:
Upvotes: 1
Views: 107
Reputation: 3268
Try this code:
<?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>
This is the preview of my answer:
And this is output of my answer in emulator:
Upvotes: 0
Reputation: 2366
if you are building an app in Arabic, Urdu, Hebrew, etc... or any language that is written from right to left you should set android:supportsRtl
to true
, that's how you tell the layout to be from right to left, and The default value of this attribute is false.
<application android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true"
tools:replace="android:supportsRtl">
.......
</application>
Edit
just call setReverseLayout(true)
for your LayoutManager
:
LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, true);
layoutManager.setReverseLayout(true);
Upvotes: 1