web-dev-qa-db-fra.com

comment créer Android linearlayout avec orientation horizontale RTL

Je veux créer une disposition linéaire avec une orientation horizontale

mais je veux qu'il positionne ses enfants alignés à sa droite et non à sa gauche comme d'habitude

comment puis-je faire ceci?

Je sais comment faire cela en utilisant relativeLayout, mais je veux pratiquer linearLayout

22
Elad Benda

Vous pouvez utiliser l'attribut Android: layoutDirection qui est introduit dans 4.2 (Jelly bean).

Les liens suivants vous aideront.

http://developer.Android.com/reference/Android/view/View.html#attr_Android:layoutDirection

http://Android-developers.blogspot.co.uk/2013/03/native-rtl-support-in-Android-42.html

31
harun

si vous utilisez Android studio, vous pouvez le faire:

1- clic droit sur le dossier principal du projet

2- refactor

3- Ajout du support pour RTL

9
Fareed Alnamrouti

vous pouvez utiliser cet extrait de code pour inverser vos vues de mise en page.

LinearLayout ll = // inflate
ArrayList<View> views = new ArrayList<View>();
for(int x = 0; x < ll.getChildCount(); x++) {
    views.add(ll.getChildAt(x));
}
ll.removeAllViews();
for(int x = views.size() - 1; x >= 0; x--) {
    ll.addView(views.get(x));
}

OU Pour commencer à prendre en charge les dispositions RTL dans votre application, définissez l'attribut Android: supportsRtl sur l'élément de votre fichier manifeste et définissez-le sur "true". Une fois que vous l'avez activé, le système permet à diverses API RTL d'afficher votre application avec des dispositions RTL. Par exemple, la barre d'action affichera l'icône et le titre sur le côté droit et les boutons d'action sur la gauche, et toutes les dispositions que vous avez créées avec les classes View fournies par le framework seront également inversées. Regardez ceci = Android doc

5
Adhikari Bishwash

Vous pouvez définir la gravité de l'élément de vue parent à droite

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent" <!-- make sure this is not wrap_content !-->
    Android:layout_height="match_parent"
    Android:orientation="horizontal"
    Android:gravity="right" >

    <TextView 
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="A"/>

    <TextView 
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="B"/>

</LinearLayout
2
Rick Royd Aban