Android中的从右到左的元素方向早于4.2

时间:2013-12-12 05:20:46

标签: android xml android-layout arabic right-to-left

我的Android应用程序中有一个表格布局,想要右边的第一列和左边的第二列,我尝试使用android:layoutDirection =“rtl”,但它只适用于版本4.2及更高版本, 我可以用什么来设置旧版本中从右到左的方向。

我的xml文件是

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/form"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#f5f5f5" >

    <RelativeLayout
        android:id="@+id/relativeLayout1"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:background="@drawable/barbac"
        android:gravity="right" >

        <ImageView
            android:id="@+id/imgtit"
            android:layout_width="60dp"
            android:layout_height="50dp"
            android:layout_alignParentRight="true"
            android:layout_alignTop="@+id/noticetit"
            android:layout_marginBottom="6dp"
            android:layout_marginRight="5dp"
            android:contentDescription="@string/app_name"
            android:src="@drawable/ajeer_logo_trans2" />

        <TextView
            android:id="@+id/noticetit"
            style="@style/textstl"
            android:layout_width="300dp"
            android:layout_height="50dp"
            android:layout_alignParentBottom="true"
            android:layout_toLeftOf="@+id/imgtit"
            android:text="@string/worknotice" />
    </RelativeLayout>

    <TableLayout
        android:id="@+id/table"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="60dp"
        android:layoutDirection="rtl"
         >

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="150dp"
            android:layout_weight="1" 
           >


 <TextView
                android:id="@+id/laborname"
                style="@style/noticform"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_column="0"
                android:layout_weight="1"
                android:text="@string/laborname" 
                />
            <TextView
                android:id="@+id/Vlaborname"
                style="@style/noticformstl"
                android:layout_width="0dip"
                android:layout_height="wrap_content"

                android:layout_weight="1" />

        </TableRow>

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <TextView
                android:id="@+id/iqamanum"
                style="@style/noticform"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_column="0"
                android:layout_weight="1"
                android:text="@string/iqamanum" />

            <TextView
                android:id="@+id/Viqamanum"
                style="@style/noticformstl"
                android:layout_width="0dip"
                android:layout_height="wrap_content"

                android:layout_weight="1" />
        </TableRow>

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <TextView
                android:id="@+id/instname1"
                style="@style/noticform"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_column="0"
                android:layout_weight="1"
                android:text="@string/instname1" />

            <TextView
                android:id="@+id/Vinstname1"
                style="@style/noticformstl"
                android:layout_width="0dip"
                android:layout_height="wrap_content"

                android:layout_weight="1" >
            </TextView>
        </TableRow>

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <TextView
                android:id="@+id/instnum"
                style="@style/noticform"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_column="0"
                android:layout_weight="1"
                android:text="@string/instnum" />

            <TextView
                android:id="@+id/Vinstnum"
                style="@style/noticformstl"
                android:layout_width="0dip"
                android:layout_height="wrap_content"

                android:layout_weight="1" />
        </TableRow>

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <TextView
                android:id="@+id/instactive"
                style="@style/noticform"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_column="0"
                android:layout_weight="1"
                android:text="@string/instactive" />

            <TextView
                android:id="@+id/Vinstactive"
                style="@style/noticformstl"
                android:layout_width="0dip"
                android:layout_height="wrap_content"

                android:layout_weight="1" />
        </TableRow>

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <TextView
                android:id="@+id/instname2"
                style="@style/noticform"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_column="0"
                android:layout_weight="1"
                android:text="@string/instname2" />

            <TextView
                android:id="@+id/Vinstname2"
                style="@style/noticformstl"
                android:layout_width="0dip"
                android:layout_height="wrap_content"

                android:layout_weight="1" />
        </TableRow>

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <TextView
                android:id="@+id/instnum2"
                style="@style/noticform"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_column="0"
                android:layout_weight="1"
                android:text="@string/instnum2" />

            <TextView
                android:id="@+id/Vinstnum2"
                style="@style/noticformstl"
                android:layout_width="0dip"
                android:layout_height="wrap_content"

                android:layout_weight="1" />
        </TableRow>

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <TextView
                android:id="@+id/sdate"
                style="@style/noticform"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_column="0"
                android:layout_weight="1"
                android:text="@string/sdate" />

            <TextView
                android:id="@+id/Vsdate"
                style="@style/noticformstl"
                android:layout_width="0dip"
                android:layout_height="wrap_content"

                android:layout_weight="1" />
        </TableRow>

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <TextView
                android:id="@+id/edate"
                style="@style/noticform"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_column="0"
                android:layout_weight="1"
                android:text="@string/edate" />

            <TextView
                android:id="@+id/Vedate"
                style="@style/noticformstl"
                android:layout_width="0dip"
                android:layout_height="wrap_content"

                android:layout_weight="1" />
        </TableRow>

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <TextView
                android:id="@+id/lacation"
                style="@style/noticform"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="@string/location" />

            <TextView
                android:id="@+id/Vlocation"
                style="@style/noticformstl"
                android:layout_width="0dip"
                android:layout_height="wrap_content"

                android:layout_weight="1" />
        </TableRow>

        <TableRow
            android:layout_width="300dp"
            android:layout_height="40dp"
            android:layout_marginBottom="80dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_weight="1"
            android:background="@drawable/roundrectangle" >

            <TextView
                android:id="@+id/expdate"
                style="@style/expdatestl"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_marginRight="30dp"
                android:layout_marginTop="9dp"
                android:layout_weight="1"
                android:text="@string/expdate" />

            <TextView
                android:id="@+id/vexpdate"
                style="@style/expdatestl1"
                android:layout_width="0dip"
                android:layout_height="wrap_content"

                android:layout_marginTop="9dp"
                android:layout_weight="1" />
        </TableRow>
    </TableLayout>
<TextView 
    android:id="@+id/copyrights"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
     android:gravity="center"
      android:layout_alignParentBottom="true"
android:text="@string/copyrights"    />
</RelativeLayout>

提前致谢

2 个答案:

答案 0 :(得分:3)

LayoutDirectionAPI v17中添加的新属性。 在此之前,使用gravitylayout_gravity为每个特定单元格完成此类任务。我永远不记得是哪一个。

答案 1 :(得分:0)

对我而言,最终有效的是webview。 因为那时我只使用CSS来设计我的文本。 如果您希望它在点击时执行某些操作,您还需要一个onTouchListener

将TextView更改为Webview:

<WebView
        android:id="@+id/noticetit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

我的代码:

WebView webView = (WebView) findViewById(R.id.noticetit);
private void setWebView() {
            String htmlcss = "<html lang=\"he\"><head><meta charset=\"utf-8\" />"
                    + "<style type=\"text/css\">.rtl {direction: rtl;color:black;font:20px arial;}</style></head>"
                    + "<body class=\"rtl\"><div class=\"rtl\">" + webView
                    + "</div></body></html>";

            webView.loadDataWithBaseURL(null, htmlcss, "text/html", "utf-8", null);
            webView.setOnTouchListener(new OnTouchListener() {
                // Removed @Override
                public boolean onTouch(View v, MotionEvent event) {
                    if (v.getId() == R.id.maintitle
                            && event.getAction() == MotionEvent.ACTION_DOWN) {
                        //Put your code here
                    }
                    return false;
                }
            });
        }

希望这会帮助你!