Comment RTL ce android de mise en page?
Je veux rtl (de Droite À Gauche) ci-dessous mise en android, comme lors de l'utilisation de layoutDirection="rtl"
dans le parent de mise en page (mais seulement pour la version 4.2 et supérieur) et en aucune manière à la rendre direction à droite à gauche, clairement.
C'est une partie de la principale android de présentation de projet qui a utilisé de Préférence de l'Activité dans android.
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2006 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
Layout for a Preference in a PreferenceActivity. The
Preference is able to place a specific widget for its particular
type in the "widget_frame" layout.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeight"
android:paddingEnd="?android:attr/scrollbarSize" >
<ImageView
android:id="@+android:id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="6dip"
android:layout_marginEnd="6dip"
android:layout_marginStart="15dip"
android:layout_marginTop="6dip"
android:layout_weight="1" >
<TextView
android:id="@+android:id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+android:id/summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@android:id/title"
android:layout_below="@android:id/title"
android:maxLines="4"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?android:attr/textColorSecondary" />
</RelativeLayout>
<!-- Preference should place its actual preference widget here. -->
<LinearLayout
android:id="@+android:id/widget_frame"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="vertical" />
</LinearLayout>
(Désolé pour ma faible en anglais!!)
- Avez-vous essayé de simplement ajouter
android:layoutDirection="rtl"
de haut-niveau<LinearLayout>
tag? - J'ajoute ceci avant toute chose est bonne, mais c'est seulement pour android 4.2 et supérieur, et mon min version du sdk est 8
Vous devez vous connecter pour publier un commentaire.
Malheureusement, RTL prise en charge de la fonction est prise en charge sur Android 4.2(API level 17) ou au-dessus seulement. Pour les versions antérieures, vous pouvez ajouter une mise en page de dossier pour les dispositions RTL. Par exemple, dans
layout
dossier vous mettre LTR fichiers de la version mise en page et enlayout-ldrtl
dossier vous mettez RTL version des fichiers de mise en page.Que de ce qu'il faut changer pour faire de RTL, il dépend de combien vous voulez à faire en RTL. parce que certaines pièces de vue reste sur le même côté (comme la barre de navigation), à moins que vous personnalisez. D'autres choses que vous avez à voir et à changer ce qui doit être changé afin de faire refroidir d'une vue. Par exemple sur le LTR vue permet de dire que nous avons ceci:
Puis sur RTL vue vous sera somethig comme ceci:
Comme vous pouvez le voir, nous avons changé le rembourrage dans le
android:paddingLeft="4dp"
etandroid:paddingRight="8dp"
mais nous avons gardé laandroid:layout_gravity="left"
parce que ça devrait être comme ça pour ce cas (peut-être sur un autre point de vue seraandroid:layout_gravity="right"
).Comme exemple, vous pouvez comparer les deux points de vue de l'Android Quran app RTL audio_panel et LTR audio_panel.