web-dev-qa-db-ja.com

作成方法Android RTL水平方向のlinearlayout

横向きの直線レイアウトを作成したい

でも、子を通常のように左ではなく右に配置したい

これどうやってするの?

RelativeLayoutを使用してこれを行う方法を知っていますが、linearLayoutを練習したいと思います

22
Elad Benda

4.2(Jelly bean)で導入されたAndroid:layoutDirection属性を使用できます。

以下のリンクが役立ちます。

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

Android studioを使用している場合、これを行うことができます:

1-プロジェクトのメインフォルダーを右クリック

2-リファクタリング

3- RTLのサポートを追加

9

このコードスニペットを使用して、レイアウトビューを逆にすることができます。

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));
}

またはアプリでRTLレイアウトのサポートを開始するには、Android:supportsRtl属性をマニフェストファイルの要素に設定して「true」に設定します。これを有効にすると、システムはさまざまなRTL APIを有効にして、RTLレイアウトでアプリを表示します。たとえば、アクションバーには右側にアイコンとタイトルが表示され、左側にアクションボタンが表示されます。また、フレームワークが提供するビュークラスを使用して作成したレイアウトも逆になります。 これを見て= Android doc

5

親ビュー要素の重力を右に設定できます

<?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