横向きの直線レイアウトを作成したい
でも、子を通常のように左ではなく右に配置したい
これどうやってするの?
RelativeLayoutを使用してこれを行う方法を知っていますが、linearLayoutを練習したいと思います
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
Android studioを使用している場合、これを行うことができます:
1-プロジェクトのメインフォルダーを右クリック
2-リファクタリング
3- RTLのサポートを追加
このコードスニペットを使用して、レイアウトビューを逆にすることができます。
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
親ビュー要素の重力を右に設定できます
<?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