在添加Scrollview之前,我的布局在不同的设备上看起来非常好。我所拥有的是一行中的两个图像,以及每个图像右上角的复选框。但是,当我添加ScrollView时,复选框会移开,图像会显示在它们下面。下面是目前的代码:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fadeScrollbars="false"
android:fillViewport="true"
android:orientation="vertical">
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linLay"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="vertical">
<!--ROW 1 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dip"
android:id="@+id/parentLayout"
android:layout_weight="1"
android:orientation="horizontal"
android:layout_marginTop="10dp">
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<ImageView
android:id="@+id/img1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp" />
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text=""
android:background="@android:color/white"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<ImageView
android:id="@+id/img2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp" />
<CheckBox
android:id="@+id/checkBox2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text=""
android:background="@android:color/white"/>
</RelativeLayout>
</LinearLayout>
<!--Row2-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:orientation="horizontal"
android:layout_marginTop="10dp">
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<ImageView
android:id="@+id/img3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp" />
<CheckBox
android:id="@+id/checkBox3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text=""
android:background="@android:color/white"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<ImageView
android:id="@+id/img4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_weight="1" />
<CheckBox
android:id="@+id/checkBox4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text=""
android:background="@android:color/white"/>
</RelativeLayout>
</LinearLayout>
答案 0 :(得分:0)
您可以使用include layout标记创建另一个xml并将其包含在滚动视图中。在android studio中创建新的滚动活动以查看相同的示例。
答案 1 :(得分:0)
问题在于每行中项目的权重参数。正如sanket pahuja所建议的那样,我将文件拆分为2.一个包含项目,另一个包含这样的布局。
item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="60dp"
android:layout_height="wrap_content"
>
<ImageView
android:id="@+id/img1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:src="@mipmap/ic_launcher"/>
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text=""
/>
</RelativeLayout>
另一个是layout_scroll
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fadeScrollbars="false"
android:fillViewport="true"
android:orientation="vertical">
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linLay"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="vertical">
<!--ROW 1 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dip"
android:id="@+id/parentLayout"
android:layout_weight="1"
android:orientation="horizontal"
android:layout_marginTop="10dp">
<include layout="@layout/item1"/>
<include layout="@layout/item1"/>
</LinearLayout>
<!--ROW 1 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dip"
android:id="@+id/parentLayout2"
android:layout_weight="1"
android:orientation="horizontal"
android:layout_marginTop="10dp">
<include layout="@layout/item1"/>
<include layout="@layout/item1"/>
</LinearLayout>
</LinearLayout>
</ScrollView>
您可以检查它是否有效。但是你将weight = 1添加到item1.xml相对布局中,当布局试图获得整个空间时,复选框会移开。