【问题标题】:How can my screen size increase in Android我的屏幕尺寸如何在 Android 中增加
【发布时间】:2014-12-17 22:12:52
【问题描述】:

我有一个带有多个输入框的屏幕,最后有一个按钮,但该按钮不适合屏幕,如图所示:

如何获得评论文本框下的按钮。那么当多行文本框展开时,按钮会向下移动吗?

编辑: 这是我的 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>

【问题讨论】:

    标签: android scrollview graphical-layout-editor


    【解决方案1】:

    使用ScrollView,如果有更多内容,您可以浏览。当然,也会处理不同的屏幕尺寸。示例:

    <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

    【讨论】:

    • 如何使用相对布局来使用滚动视图?
    • 它对我不起作用,这是我得到的结果:screenshot
    • 在问题中发布您的 xml 布局。
    • 谢谢 Nassir,我现在得到了评论教科书下方的按钮。但是屏幕并没有扩大。课本展开时,按钮消失不见
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    相关资源
    最近更新 更多