主要问题是如何在包含FrameLayout,scrollView和linearLayout时相互重叠时如何设计布局?
我很难用以下xml代码实现我想要的界面! 我想要的是:
将FrameLayout作为根目录放置
a ScrollView containing other linear layout, textviews , ...
a LinearLayout which contains 4 Buttons
现在输出就是这样,可以防止点击按钮。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="polimi.aap.yas.personalhealthrecord.EditPersonal">
<FrameLayout
android:id="@+id/flContent_ep"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/linearLayout2"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_gravity="bottom">
<Button
android:layout_width="wrap_content"
android:layout_height="70dp"
android:background="@mipmap/generalbtnimg"
android:id="@+id/btnClearAll_editP"
android:layout_weight="1"
android:text="Clear All"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="70dp"
android:background="@mipmap/generalbtnimg"
android:id="@+id/btnSubmit_editP"
android:layout_weight="1"
android:text="Submit" />
<Button
android:layout_width="wrap_content"
android:layout_height="70dp"
android:background="@mipmap/generalbtnimg"
android:id="@+id/btnChangePass_editP"
android:layout_weight="1"
android:text="Password" />
<Button
android:layout_width="wrap_content"
android:layout_height="70dp"
android:background="@mipmap/generalbtnimg"
android:id="@+id/btnReviewInfo_editP"
android:layout_weight="1"
android:text="Summary" />
</LinearLayout>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/scrollView"
android:scrollIndicators="right"
android:layout_above="@id/linearLayout2"
>
<LinearLayout
android:id="@+id/linearLayout_Sc"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:padding="10dp" >
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:ems="10"
android:id="@+id/txtFirstName_editP"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:hint="First Name ..."/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="date"
android:ems="10"
android:id="@+id/txtDateOfBirth_editP"
android:hint="Birth Date ..."
android:layout_below="@+id/txtLastName_editP"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnCal_editP"
android:background="@mipmap/calendaricon"
android:layout_below="@+id/txtLastName_editP"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_gravity="right" />
</LinearLayout>
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/radioGroupGender_editP"
android:layout_below="@+id/btnCal_editP"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:onClick="showDatePickerDialog"
android:clickable="true">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Female"
android:id="@+id/rbtn_female"
android:checked="false"
android:layout_weight="1"
/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Male"
android:id="@+id/rbtn_male"
android:checked="false"
android:layout_weight="1"
/>
</RadioGroup>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/txtAddress1_editP"
android:hint="Address Line1..."
android:layout_below="@+id/radioGroupGender_editP"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
.
.
.
</LinearLayout>
</ScrollView>
</FrameLayout>
</RelativeLayout>
请您查看上面的代码并告诉我为什么结果是这样的?
答案 0 :(得分:2)
将ScrollView更改为此。
<ScrollView
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:id="@+id/scrollView"
android:scrollIndicators="right"
android:paddingBottom="80dp"
android:layout_above="@id/linearLayout2"
>
答案 1 :(得分:0)
//你应该试试这个......
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="myproject.nectarbits.com.multipleparallelasynctask.MainActivity">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="@android:color/holo_red_dark"
android:orientation="horizontal">
<!--<View.... />-->
<!--<View.... />-->
<!--<View.... />-->
<!--<View.... />-->
</LinearLayout>
<ScrollView
android:id="@+id/scroll"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/linearLayout"
android:background="@android:color/holo_green_dark">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--<View.... />-->
<!--<View.... />-->
<!--<View.... />-->
<!--<View.... />-->
<!--<View.... />-->
<!--<View.... />-->
</LinearLayout>
</ScrollView>
</RelativeLayout>
</FrameLayout>
</RelativeLayout>
答案 2 :(得分:0)
您可以将您的布局设计如下(相应地编辑您的图像资源)
以编程方式为您的滚动视图提供高度
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
ScrollView mylout = (ScrollView) findViewById(R.id.scrollView);
mylout.getLayoutParams().height = height - ((int)(height*0.3));
// 0.3 is for getting 30% of the screen and subtracting it
//from total screen size
,你的xml将是这样的:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="polimi.aap.yas.personalhealthrecord.EditPersonal">
<FrameLayout
android:id="@+id/flContent_ep"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ScrollView
android:id="@+id/scrollView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollIndicators="right">
<LinearLayout
android:id="@+id/linearLayout_Sc"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:orientation="vertical"
android:padding="10dp">
<EditText
android:id="@+id/txtFirstName_editP"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:ems="10"
android:hint="First Name ..."
android:inputType="textPersonName" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<EditText
android:id="@+id/txtDateOfBirth_editP"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/txtLastName_editP"
android:ems="10"
android:hint="Birth Date ..."
android:inputType="date" />
<Button
android:id="@+id/btnCal_editP"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/txtLastName_editP"
android:layout_gravity="right"
android:background="@mipmap/ic_launcher" />
</LinearLayout>
<RadioGroup
android:id="@+id/radioGroupGender_editP"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/btnCal_editP"
android:clickable="true"
android:onClick="showDatePickerDialog"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rbtn_female"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:checked="false"
android:text="Female" />
<RadioButton
android:id="@+id/rbtn_male"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:checked="false"
android:text="Male" />
</RadioGroup>
<EditText
android:id="@+id/tx1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/radioGroupGender_editP"
android:hint="Address Line1..." />
<EditText
android:id="@+id/txt2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/radioGroupGender_editP"
android:hint="Address Line1..." /> <EditText
android:id="@+id/txt3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/radioGroupGender_editP"
android:hint="Address Line1..." /> <EditText
android:id="@+id/txt4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/radioGroupGender_editP"
android:hint="Address Line1..." /> <EditText
android:id="@+id/txt5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/radioGroupGender_editP"
android:hint="Address Line1..." /> <EditText
android:id="@+id/txt6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/radioGroupGender_editP"
android:hint="Address Line1..." />
<EditText
android:id="@+id/txt27"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/radioGroupGender_editP"
android:hint="Address Line1..." />
<EditText
android:id="@+id/txt72"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/radioGroupGender_editP"
android:hint="Address Line1..." />
<EditText
android:id="@+id/txt8"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/radioGroupGender_editP"
android:hint="Address Line1..." />
<EditText
android:id="@+id/txt9"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/radioGroupGender_editP"
android:hint="Address Line1..." />
<EditText
android:id="@+id/txt10"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/radioGroupGender_editP"
android:hint="Address Line1..." />
</LinearLayout>
</ScrollView>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_gravity="bottom">
<Button
android:id="@+id/btnClearAll_editP"
android:layout_width="wrap_content"
android:layout_height="70dp"
android:layout_weight="1"
android:background="@mipmap/ic_launcher"
android:text="Clear All" />
<Button
android:id="@+id/btnSubmit_editP"
android:layout_width="wrap_content"
android:layout_height="70dp"
android:layout_weight="1"
android:background="@mipmap/ic_launcher"
android:text="Submit" />
<Button
android:id="@+id/btnChangePass_editP"
android:layout_width="wrap_content"
android:layout_height="70dp"
android:layout_weight="1"
android:background="@mipmap/ic_launcher"
android:text="Password" />
<Button
android:id="@+id/btnReviewInfo_editP"
android:layout_width="wrap_content"
android:layout_height="70dp"
android:layout_weight="1"
android:background="@mipmap/ic_launcher"
android:text="Summary" />
</LinearLayout>
</RelativeLayout>
</FrameLayout>
</RelativeLayout>