我有一个带有几个输入框的屏幕,最后一个按钮,但按钮不适合屏幕,如图所示:
http://i58.tinypic.com/20jh8gk.jpg
如何获取评论文本框下的按钮。因此,当多行文本框展开时,按钮向下移动?
修改 这是我的xml布局
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true">
<RelativeLayout
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="be.example.timelogger.NewLogActivity" >
<TextView
android:id="@+id/tvDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="20dp"
android:layout_marginTop="25dp"
android:text="@string/dateText"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/tvStartTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/tvDate"
android:layout_below="@+id/inputDate"
android:layout_marginTop="22dp"
android:text="@string/startTimeText"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/tvEndTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/tvStartTime"
android:layout_below="@+id/inputStartTime"
android:layout_marginTop="26dp"
android:text="@string/endTimeText"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/tvDurationTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/inputEndTime"
android:layout_centerVertical="true"
android:text="@string/durationTimeText"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/inputDate"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/tvDate"
android:layout_marginLeft="18dp"
android:layout_toRightOf="@+id/tvDuration"
android:ems="10"
android:inputType="date"
android:onClick="showDatePickerDialog" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/inputEndTime"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/tvEndTime"
android:layout_alignBottom="@+id/tvEndTime"
android:layout_alignLeft="@+id/inputDate"
android:ems="10"
android:inputType="time"
android:onClick="showTimePickerDialogEnd" />
<EditText
android:id="@+id/inputStartTime"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/inputEndTime"
android:layout_alignTop="@+id/tvStartTime"
android:ems="10"
android:inputType="time"
android:onClick="showTimePickerDialogStart" />
<TextView
android:id="@+id/tvDuration"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/tvEndTime"
android:layout_centerVertical="true"
android:text="@string/durationText"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/tvCourse"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/tvDuration"
android:layout_below="@+id/tvDuration"
android:layout_marginTop="30dp"
android:text="@string/tvCourseText"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Spinner
android:id="@+id/spinCourse"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/tvCourse"
android:layout_toRightOf="@+id/tvDurationTime" />
<EditText
android:id="@+id/txtComment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/tvComment"
android:layout_alignRight="@+id/inputEndTime"
android:layout_below="@+id/tvComment"
android:layout_marginTop="17dp"
android:ems="10"
android:isScrollContainer="true"
android:inputType="textMultiLine" />
<TextView
android:id="@+id/tvComment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/tvCourse"
android:layout_below="@+id/spinCourse"
android:layout_marginTop="28dp"
android:text="@string/commentText"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Button
android:id="@+id/btnSave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="@string/btnSaveText" />
</RelativeLayout>
答案 0 :(得分:2)
使用ScrollView
,如果有更多内容可以sc。。当然,也会处理不同的屏幕尺寸。例如:
<ScrollView>
<RelativeLayout>
your views here
</RelativeLayout>
</ScrollView>
在您的代码中,问题是您将按钮与父底部对齐。这样做:
<Button
android:id="@+id/btnSave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tvComment"
android:layout_centerHorizontal="true"
android:text="@string/btnSaveText" />
这会将您的按钮置于TextView下方,甚至可能不需要ScrollView
。