线性布局中的重叠元素

时间:2015-01-13 11:32:23

标签: android android-linearlayout android-imageview

在这里,我试图显示假期并将请求图像并排放置,垂直位于员工信息下方,并保留信息图像。但不知何故,假期和请假图像不会显示,似乎已经重叠。我该如何纠正这个问题?

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

    <ImageView
        android:id="@+id/header"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:gravity="top"
        android:contentDescription="@string/Homescreen_header"
        android:src="@drawable/logoheader" />

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

        <ImageView 
            android:id="@+id/empinfo_logo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="5dp"
            android:contentDescription="@string/Homescreen_emp_info"
            android:src="@drawable/employee_info"/>

        <ImageView 
            android:id="@+id/leaveinfo_logo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="10dp"
            android:gravity="left"
            android:contentDescription="@string/Homescreen_leave_info"
            android:src="@drawable/leave_info"/>

    </LinearLayout>

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

        <ImageView 
            android:id="@+id/holidays_logo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="5dp"
            android:contentDescription="@string/Homescreen_holidays"
            android:src="@drawable/holidays"/>

        <ImageView 
            android:id="@+id/leavereq_logo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="10dp"
            android:gravity="left"
            android:contentDescription="@string/Homescreen_leave_req"
            android:src="@drawable/leave_request"/>

    </LinearLayout>
</LinearLayout>

3 个答案:

答案 0 :(得分:0)

尝试将layout_weight放在水平线性布局内的图像视图上,并将线性布局的layout_height设置为wrap_content。别忘了将layout_width更改为0dp。并将整个布局放在ScrollView

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <ImageView
            android:id="@+id/header"
            android:layout_width="match_parent"
            android:layout_height="100dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:gravity="top"
            android:contentDescription="@string/Homescreen_header"
            android:src="@drawable/logoheader" />

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

            <ImageView 
                android:id="@+id/empinfo_logo"
                android:layout_weight="1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="5dp"
                android:contentDescription="@string/Homescreen_emp_info"
                android:src="@drawable/employee_info"/>

            <ImageView 
                android:id="@+id/leaveinfo_logo"
                android:layout_weight="1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="10dp"
                android:gravity="left"
                android:contentDescription="@string/Homescreen_leave_info"
                android:src="@drawable/leave_info"/>

        </LinearLayout>

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

            <ImageView 
                android:id="@+id/holidays_logo"
                android:layout_weight="1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="5dp"
                android:contentDescription="@string/Homescreen_holidays"
                android:src="@drawable/holidays"/>

            <ImageView 
                android:id="@+id/leavereq_logo"
                android:layout_weight="1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="10dp"
                android:gravity="left"
                android:contentDescription="@string/Homescreen_leave_req"
                android:src="@drawable/leave_request"/>

        </LinearLayout>
    </LinearLayout>
</ScrollView>

答案 1 :(得分:0)

您需要将图片的 LinearLayout 高度更改为 wrap_content

试试这个:

<ImageView
        android:id="@+id/header"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:gravity="top"
        android:contentDescription="@string/Homescreen_header"
        android:src="@drawable/logoheader" />

    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:orientation="horizontal"> <!-- Changes here -->

        <ImageView 
            android:id="@+id/empinfo_logo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="5dp"
            android:contentDescription="@string/Homescreen_emp_info"
            android:src="@drawable/employee_info"/>

        <ImageView 
            android:id="@+id/leaveinfo_logo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="10dp"
            android:gravity="left"
            android:contentDescription="@string/Homescreen_leave_info"
            android:src="@drawable/leave_info"/>

    </LinearLayout>

    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:orientation="horizontal"> <!-- Changes here -->

        <ImageView 
            android:id="@+id/holidays_logo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="5dp"
            android:contentDescription="@string/Homescreen_holidays"
            android:src="@drawable/holidays"/>

        <ImageView 
            android:id="@+id/leavereq_logo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="10dp"
            android:gravity="left"
            android:contentDescription="@string/Homescreen_leave_req"
            android:src="@drawable/leave_request"/>

    </LinearLayout>
</LinearLayout>

答案 2 :(得分:0)

将员工信息和假期的两个LinearLayouts包装在容器布局中,并将每个的宽度设置为android:layout_width="0dp",权重设置为android:layout_weight="0.5",结果将是:

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

    <ImageView
        android:id="@+id/header"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:contentDescription="@string/Homescreen_header"
        android:gravity="top"
        android:src="@drawable/logoheader" />

    <LinearLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal" >

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="0.5"
            android:orientation="horizontal" >

            <ImageView
                android:id="@+id/empinfo_logo"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="5dp"
                android:contentDescription="@string/Homescreen_emp_info"
                android:src="@drawable/employee_info" />

            <ImageView
                android:id="@+id/leaveinfo_logo"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="10dp"
                android:contentDescription="@string/Homescreen_leave_info"
                android:gravity="left"
                android:src="@drawable/leave_info" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="0.5"
            android:orientation="horizontal" >

            <ImageView
                android:id="@+id/holidays_logo"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="5dp"
                android:contentDescription="@string/Homescreen_holidays"
                android:src="@drawable/holidays" />

            <ImageView
                android:id="@+id/leavereq_logo"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="10dp"
                android:contentDescription="@string/Homescreen_leave_req"
                android:gravity="left"
                android:src="@drawable/leave_request" />
        </LinearLayout>
    </LinearLayout>

</LinearLayout>

ps 如果您希望员工信息和假期徽标在彼此之下而不是并排,只需更改{{ 1}}布局方向为container