簡體   English   中英

android:layout_below =不在下面放置項目

[英]android:layout_below= does not place item below

我有一個editText和一個textView,我試圖將其設置在imageView下方,但是參數android:layout_below =不會在下方放置項目。

如何避免這種情況?

另外,我在textView,editText和imageView上設置了android:layout_alignParentRight =“ true”,這似乎也不起作用。

XML格式

<?xml version="1.0" encoding="utf-8"?>
<com.example.project.DragLayer xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher"
    android:id="@+id/drag_layer"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@android:color/black" >

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

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical"
            android:weightSum="1.0" >

            <GridView
                android:id="@+id/image_grid_view"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_weight="0.8"
                android:background="@color/grid_background"
                android:gravity="center"
                android:horizontalSpacing="2dip"
                android:numColumns="@integer/num_columns"
                android:stretchMode="columnWidth"
                android:verticalSpacing="2dip" />

            <RelativeLayout
                android:id="@+id/bottom_part"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_centerHorizontal="true"
                android:layout_weight="0.2"
                android:background="@android:color/black"
                android:orientation="horizontal"
                android:weightSum="1.0" >

                <Button
                    android:id="@+id/button_add_image"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerHorizontal="true"
                    android:onClick="onClickAddImage"
                    android:text="Add image" />

                <com.example.project.DeleteZone
                    android:id="@+id/delete_zone_view"
                    android:layout_width="60dp"
                    android:layout_height="60dp"
                    android:layout_gravity="center"
                    android:src="@drawable/delete_zone" />

                <FrameLayout
                    android:id="@+id/image_source_frame"
                    android:layout_width="80dp"
                    android:layout_height="200dp"
                    android:layout_weight="0.5" >

                    <RelativeLayout
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                         >

                        <ImageView
                            android:id="@+id/sqwhite"
                            android:layout_width="20dp"
                            android:layout_height="20dp"
                            android:layout_alignParentRight="true"
                            android:layout_gravity="right"
                            android:layout_marginRight="5dp" />

                        <EditText
                            android:id="@+id/editText1"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_alignParentRight="true"
                            android:layout_below="@id/sqwhite"
                            android:layout_marginRight="5dp" >

                            <requestFocus />
                        </EditText>

                        <TextView
                            android:id="@+id/textView1"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_alignParentRight="true"
                            android:layout_below="@id/editText1"
                            android:layout_marginRight="5dp"
                            android:text=""
                            android:textColor="@android:color/white" />
                    </RelativeLayout>
                </FrameLayout>
            </RelativeLayout>
        </LinearLayout>
    </LinearLayout>

</com.example.project.DragLayer>

在此處輸入圖片說明

您使用的是線性布局,如果您切換到相對布局,則android:layout_below將起作用。

android:layout_alignParentRight="true"也適用於相對布局。

希望這可以幫助!

在以下FrameLayout使用RelativeLayout而不是LinearLayout

<FrameLayout
    android:id="@+id/image_source_frame"
    ...
    >

</FrameLayout>

希望這可以幫助。

您的代碼工作正常。 問題是圖像的高度和寬度。 嘗試下面的代碼。

<?xml version="1.0" encoding="utf-8"?>
<com.example.project.DragLayer xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher"
android:id="@+id/drag_layer"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/black" >

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

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:weightSum="1.0" >

        <GridView
            android:id="@+id/image_grid_view"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight="0.8"
            android:background="@color/grid_background"
            android:gravity="center"
            android:horizontalSpacing="2dip"
            android:numColumns="@integer/num_columns"
            android:stretchMode="columnWidth"
            android:verticalSpacing="2dip" />

        <RelativeLayout
            android:id="@+id/bottom_part"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_centerHorizontal="true"
            android:layout_weight="0.2"
            android:background="@android:color/black"
            android:orientation="horizontal"
            android:weightSum="1.0" >

            <Button
                android:id="@+id/button_add_image"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:onClick="onClickAddImage"
                android:text="Add image" />

            <com.example.project.DeleteZone
                android:id="@+id/delete_zone_view"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_gravity="center"
                android:src="@drawable/delete_zone" />

            <FrameLayout
                android:id="@+id/image_source_frame"
                android:layout_width="80dp"
                android:layout_height="200dp"
                android:layout_weight="0.5" >

                <RelativeLayout
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:orientation="vertical" >

                    <ImageView
                        android:id="@+id/sqwhite"
                        android:layout_width="20dp"
                        android:layout_height="20dp"
                        android:background="#657654"
                        android:layout_alignParentRight="true"
                        android:layout_gravity="right"
                        android:layout_marginRight="5dp" />

                    <EditText
                        android:id="@+id/editText1"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        android:layout_below="@+id/sqwhite"
                        android:background="#843577"  
                        android:layout_marginRight="5dp" >

                        <requestFocus />
                    </EditText>

                    <TextView
                        android:id="@+id/textView1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:background="#454544"
                        android:layout_alignParentRight="true"
                        android:layout_below="@+id/editText1"
                        android:layout_marginRight="5dp"
                        android:text=""
                        android:textColor="@android:color/white" />
                </RelativeLayout>
            </FrameLayout>
        </RelativeLayout>
    </LinearLayout>
</LinearLayout>

您正在將RelativeLayout(帶有按鈕,DeleteZone和FrameLayout的那個)視為LinearLayout。 對於這三個孩子,您需要指定它們相對於彼此或父對象的相對位置。 諸如layout_weightlayout_gravity類的參數對於作為RelativeLayout的子級的View而言毫無意義。 默認情況下,它們都將卡在RelativeLayout的左上角,因為您沒有指定它們的位置。

就個人而言,我將同時刪除LinearLines,RelativeLayouts和FrameLayout,並為所有子代使用一個RelativeLayout。 那會干凈得多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM