[英]Relative layout within Linear layout is scrollview possible?
I have a layout for entering a country into a database in my app. 我有一个布局,可以在我的应用程序中将国家/地区输入数据库。 I would like my layout to be scrollable because on some devices the keyboard can end up blocking text fields.
我希望布局可以滚动,因为在某些设备上,键盘最终可能会阻塞文本字段。 I know that I can use ScrollView to do this but I am having a problem.
我知道我可以使用ScrollView来做到这一点,但是我遇到了问题。 My layout consists of an overall LinearLayout but I have included 2 buttons within this in a RelativeLayout.
我的布局包含一个整体的LinearLayout,但在RelativeLayout中包含了2个按钮。 This is giving me an unusual method of scrolling where the whole screen seems to scroll even when I am not entering in text, leaving a big gap at the bottom of the screen.
这给了我一种不寻常的滚动方法,即使我没有输入文字,整个屏幕似乎仍在滚动,从而在屏幕底部留下了很大的空白。 Any thoughts on this?
有什么想法吗?
Here is my layout: 这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/map"
android:scrollbars = "vertical" >
<!-- Enter country -->
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/editcountry"
android:textColor="@color/black"
android:textSize="22sp" />
<AutoCompleteTextView
android:id="@+id/editcountry"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/hintprompt"
android:imeOptions="actionDone" />
<!-- Enter year -->
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/edityear"
android:textColor="@color/black"
android:textSize="22sp" />
<Spinner
android:id="@+id/yearspin"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<!-- Enter month -->
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/editmonth"
android:textColor="@color/black"
android:textSize="22sp" />
<Spinner
android:id="@+id/monthspin"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:entries="@array/months" />
<!-- Enter mode of transport -->
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/edittransport"
android:textColor="@color/black"
android:textSize="22sp" />
<Spinner
android:id="@+id/transportspin"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:entries="@array/transport" />
<!-- Enter description -->
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/editdesc"
android:textColor="@color/black"
android:textSize="22sp" />
<EditText
android:id="@+id/editdesc"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/hintprompt"
android:inputType="text"
android:imeOptions="actionDone"/>
<!-- Place buttons at the bottom of the screen -->
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/backmain"
android:layout_width="150dp"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:text="@string/back" />
<Button
android:id="@+id/add"
android:layout_width="150dp"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="@string/addinfo" />
</RelativeLayout>
</LinearLayout>
</ScrollView>
Your LinearLayout
has it's height set to fill_parent
. 您的
LinearLayout
的高度设置为fill_parent
。 Change that to wrap_content
. 将其更改为
wrap_content
。 Your RelativeLayout
is set the same way. 您的
RelativeLayout
的设置方法相同。 Could also be the culprit. 也可能是罪魁祸首。
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/map"
android:scrollbars = "vertical" >
You can also put your scrollView inside another layout. 您也可以将您的scrollView放在另一个布局中。 Have one vertical LinearLayout with two Layouts inside, one for your everything that should scroll with layout_weight="1" and at the bottom another layout that consist of your buttons
有一个垂直的LinearLayout,里面有两个布局,一个用于您应以layout_weight =“ 1”滚动的所有内容,而在底部则是由按钮组成的另一个布局
Your layout will be something similar to this: 您的布局将类似于以下内容:
Vertical LinearLayout
LinearLayout with layout_weight="1"
ScrollView
Layout containing your stuff
layout containing buttons
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.