元素的Android布局位置

时间:2016-04-01 17:27:06

标签: android android-layout android-layout-weight

如何为布局中的元素提供一个不变的位置,如果我改变语言,它将不会改变?我写了这个布局但不幸的是,当我改变语言时,元素的位置发生了变化,我不希望它发生。如果有人可以帮助我吗?

此外,即使Android设备更改,有没有办法使元素适合?换句话说:这个布局在模拟器上运行,具有完美的大小但是当我在硬件设备上启动应用程序时,位置越来越低,我无法达到其中一些(在这种情况下,我的意思是按钮)

这是布局文件:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <TextView
        android:layout_width="match_parent"
        android:gravity="center"
        android:textStyle="bold"
        android:textSize="20dp"
        android:text="أهلا بك بقائمة المقترحات"
        android:layout_height="wrap_content" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">


        <EditText
            android:layout_width="wrap_content"
            android:id="@+id/suggestiontitle"
            android:layout_gravity="right"
            android:singleLine="true"
            android:gravity="right"
            android:layout_marginLeft="20dp"
            android:layout_weight="10"
            android:layout_height="wrap_content" />

        <TextView
            android:layout_width="wrap_content"

            android:text="عنوان المقترح"
            android:textStyle="bold"
            android:layout_gravity="right"

            android:layout_weight="1"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_marginTop="30dp"
        android:layout_height="wrap_content"
        android:layout_marginBottom="20dp"
        android:orientation="vertical">



        <TextView
            android:layout_width="wrap_content"
            android:text="نص المقترح"
            android:gravity="right"
            android:textStyle="bold"
            android:layout_gravity="right"
            android:layout_weight="1"
            android:layout_height="wrap_content" />

        <EditText
            android:inputType="textMultiLine"
            android:layout_marginRight="70dp"
            android:lines="10"
            android:minLines="6"    android:gravity="top|left"
            android:maxLines="10"
            android:layout_gravity="right"
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:id="@+id/suggestioncontent"
            android:scrollbars="vertical"
            />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:layout_marginBottom="20dp"
        android:orientation="horizontal">

        <EditText
            android:layout_width="wrap_content"
            android:layout_marginLeft="20dp"
            android:id="@+id/suggestioncontactinfo"
            android:layout_weight="10"
            android:layout_height="wrap_content" />

        <TextView
            android:layout_width="wrap_content"
            android:text="معلومات التواصل"
            android:textStyle="bold"
            android:layout_gravity="right"
            android:gravity="right"
            android:layout_weight="1"
            android:singleLine="true"
            android:layout_height="wrap_content" />
    </LinearLayout>



    <Button
        android:layout_width="match_parent"
        android:id="@+id/sendsuggestion"
        android:text="إرسال المقترح"
        android:textStyle="bold"
        android:textSize="20dp"
        android:layout_height="wrap_content" />





</LinearLayout> 

4 个答案:

答案 0 :(得分:0)

如果您希望布局不会因显示尺寸而改变,则必须相对于显示指定。您可以使用PercentRelativeLayout来指定大小百分比。

这需要百分比支持库http://developer.android.com/tools/support-library/features.html#percent

答案 1 :(得分:0)

首先仔细阅读THIS。然后考虑使用ScrollView包装父LinearLayout。它使您的布局可滚动,底部视图可以访问。

对于位置更改,您可以使用RelativeLayout,这是因为您的示例中的语言支持RTL(RightToLeft)。

答案 2 :(得分:0)

尝试使用RelativeLayout并将其包装在ScrollView中,然后如果布局离开屏幕,您可以滚动它以查看视图的其余部分。

<ScrollView>
<RelativeLayout>
     <Child Layouts>
</RelativeLayout>
</ScrollView>

答案 3 :(得分:0)

谢谢大家,我使用了相对布局,它解决了问题。 这是修改后的代码:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    xmlns:android="http://schemas.android.com/apk/res/android">



    <TextView
        android:layout_width="match_parent"
        android:gravity="center"
       android:id="@+id/main_text"
        android:textStyle="bold"
        android:textSize="20dp"
        android:text="أهلا بك بقائمة المقترحات"
        android:layout_height="wrap_content" />




    <TextView
        android:layout_width="wrap_content"
        android:text="عنوان المقترح"
        android:layout_alignParentRight="true"
        android:layout_below="@id/main_text"
       android:id="@+id/suggestion_title"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"

        />


    <EditText
        android:layout_below="@id/main_text"
        android:layout_marginRight="50dp"
        android:layout_toLeftOf="@id/suggestion_title"
        android:layout_width="wrap_content"
        android:id="@+id/suggestiontitle"
        android:layout_gravity="right"
        android:singleLine="true"
        android:layout_alignParentLeft="true"
        android:gravity="right"
        android:layout_marginLeft="20dp"
        android:layout_weight="10"
        android:layout_height="wrap_content" />

        <TextView
            android:id="@+id/suggestion_text"
            android:layout_marginTop="50dp"
            android:layout_below="@+id/suggestion_title"
            android:layout_width="wrap_content"
            android:text="نص المقترح"
            android:gravity="right"
            android:layout_alignParentRight="true"
            android:textStyle="bold"
            android:layout_gravity="right"
            android:layout_weight="1"
            android:layout_height="wrap_content" />

        <EditText
            android:inputType="textMultiLine"
            android:layout_toLeftOf="@id/suggestion_text"
            android:layout_alignParentLeft="true"
            android:layout_marginRight="50dp"
            android:layout_marginLeft="20dp"
            android:layout_below="@id/main_text"
            android:lines="6"
            android:minLines="6"
            android:layout_marginTop="80dp"
            android:gravity="top|left"
            android:maxLines="10"
            android:layout_gravity="right"
            android:layout_height="200dp"
            android:layout_width="match_parent"
            android:id="@+id/suggestioncontent"
            android:scrollbars="vertical"
            />


        <TextView
            android:id="@+id/contact_view"
            android:layout_marginTop="220dp"
            android:layout_below="@id/suggestion_text"
            android:layout_alignParentRight="true"
            android:layout_width="wrap_content"
            android:text="معلومات التواصل"
            android:textStyle="bold"
            android:layout_gravity="right"
            android:gravity="right"
            android:layout_weight="1"
            android:singleLine="true"
            android:layout_height="wrap_content" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="20dp"
        android:layout_below="@id/suggestioncontent"
        android:id="@+id/suggestioncontactinfo"
       android:layout_toLeftOf="@+id/contact_view"
        android:layout_alignParentLeft="true"
        android:layout_marginRight="15dp"
        android:layout_height="wrap_content" />

    <Button
        android:layout_width="match_parent"
        android:id="@+id/sendsuggestion"
        android:text="إرسال المقترح"
        android:textStyle="bold"
        android:layout_marginTop="50dp"
        android:textSize="20dp"
        android:layout_below="@id/contact_view"
        android:layout_height="wrap_content" />

</RelativeLayout>