0

为了在较小的屏幕上查看我的 relativelayout 中的所有元素,我选择使用滚动视图来使其成为可能(或至少尝试完成此操作)。问题:我无法滚动。有或没有滚动视图的结果是一样的,如果屏幕很小,一些元素会被截断(如果可以滚动,这很好)。在一些搜索中,我遇到了一些带有线性布局实现的滚动视图,但在我的情况下,我认为它不是很好,因为我需要与文本右侧对齐的复选框。

这是我到目前为止得到的 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:background="#231E1A"
    android:keepScreenOn="true"
    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:ignore="ContentDescription"
    android:fillViewport="true">

<RelativeLayout
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <Button
        android:id="@+id/btn_getDirections"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:text="@string/btn_getDirections" />

    <TextView
        android:id="@+id/static_language"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/radioGroup"
        android:layout_alignLeft="@+id/radioGroup"
        android:text="@string/static_language"
        android:paddingTop="10dp"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#FFFFFF" />

    <AutoCompleteTextView
        android:id="@+id/aComplete_destination"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/static_language"
        android:layout_alignLeft="@+id/static_language"
        android:ems="10"
        android:inputType="textNoSuggestions"
        android:text="@string/aComplete_destination" />


    <TextView
        android:id="@+id/static_destination"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/aComplete_destination"
        android:layout_alignLeft="@+id/aComplete_destination"
        android:text="@string/static_destination"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#FFFFFF" />

    <TextView
        android:id="@+id/static_highways"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/static_destination"
        android:layout_alignLeft="@+id/static_destination"
        android:paddingBottom="10dp"
        android:text="@string/static_highways"
        android:textColor="#FFFFFF"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/static_tolls"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/static_highways"
        android:layout_alignLeft="@+id/static_highways"
        android:paddingBottom="10dp"
        android:paddingTop="10dp"
        android:text="@string/static_tolls"
        android:textColor="#FFFFFF"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/static_useCurrentLocation"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/static_tolls"
        android:layout_alignLeft="@+id/static_tolls"
        android:paddingTop="10dp"
        android:text="@string/static_useCurrentLocation"
        android:textColor="#FFFFFF"
        android:textSize="20sp" />

    <AutoCompleteTextView
        android:id="@+id/aComplete_origin"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/static_useCurrentLocation"
        android:layout_alignLeft="@+id/static_useCurrentLocation"
        android:ems="10"
        android:inputType="textNoSuggestions"
        android:text="@string/aComplete_origin" >
        <requestFocus />
    </AutoCompleteTextView>

    <TextView
        android:id="@+id/static_origin"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/aComplete_origin"
        android:layout_alignLeft="@+id/aComplete_origin"
        android:text="@string/static_origin"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#FFFFFF" />

    <ImageView
        android:id="@+id/logo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/static_origin"
        android:layout_alignLeft="@+id/static_origin"
        android:layout_alignParentTop="true"
        android:paddingBottom="10dp"
        android:scaleType="fitStart"
        android:src="@drawable/logo" />

    <CheckBox
        android:id="@+id/tolls_checkbox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/static_tolls"
        android:layout_alignBottom="@+id/static_tolls"
        android:layout_alignParentRight="true"
        android:text="@string/checkbox" />

    <CheckBox
        android:id="@+id/highways_checkbox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/static_highways"
        android:layout_alignBottom="@+id/static_highways"
        android:layout_alignParentRight="true"
        android:text="@string/checkbox" />

    <CheckBox
        android:id="@+id/useLocation_checkbox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/static_useCurrentLocation"
        android:layout_alignBottom="@+id/static_useCurrentLocation"
        android:layout_alignParentRight="true"
        android:text="@string/checkbox" />

    <RadioGroup
        android:id="@+id/radioGroup"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/btn_getDirections"
        android:layout_alignLeft="@+id/btn_getDirections"
        android:orientation="horizontal" >

        <RadioButton
            android:id="@+id/radio_english"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:textColor="#FFFFFF"
            android:layout_marginRight="20dp"
            android:text="@string/radio_english" />

        <RadioButton
            android:id="@+id/radio_portugues"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#FFFFFF"
            android:text="@string/radio_portugues" />
    </RadioGroup>
</RelativeLayout>
</ScrollView>
4

1 回答 1

0

嘘!我让它工作了!这都是线性布局、滚动视图和相对布局的组合。现在,当屏幕不足以查看完整内容时,它可以完美滚动。我猜想改成线性布局实际上是其中的关键。基本上我应用了开发人员网站中所述的内容:http: //developer.android.com/reference/android/widget/ScrollView.html

经常使用的子元素是垂直方向的 LinearLayout,它呈现用户可以滚动浏览的顶级项目的垂直数组。

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:background="#231E1A"
    android:keepScreenOn="true"
    android:scrollbars="none"
    android:overScrollMode="never"
    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:ignore="ContentDescription"
    android:fillViewport="true">

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="bottom"
    android:keepScreenOn="true"
    android:orientation="vertical" >

    <ImageView 
        android:layout_width="wrap_content"
        android:layout_height="80dp"
        android:id="@+id/logo"
        android:scaleType="fitStart"
        android:src="@drawable/logo"/>

    <TextView
        android:id="@+id/static_origin"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/static_origin"
        android:paddingTop="10dp"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#FFFFFF" />

    <AutoCompleteTextView
        android:id="@+id/aComplete_origin"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textNoSuggestions"
        android:text="@string/aComplete_origin" >  
        <requestFocus />
    </AutoCompleteTextView>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/static_useCurrentLocation"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:textColor="#FFFFFF"
            android:textSize="20sp"
            android:paddingTop="10dp"
            android:text="@string/static_useCurrentLocation" />

        <TextView
            android:id="@+id/static_tolls"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/static_useCurrentLocation"
            android:layout_below="@+id/static_useCurrentLocation"
            android:textColor="#FFFFFF"
            android:textSize="20sp"
            android:paddingBottom="10dp"
            android:paddingTop="10dp"           
            android:text="@string/static_tolls" />

        <TextView
            android:id="@+id/static_highways"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/static_tolls"
            android:layout_alignLeft="@+id/static_tolls"
            android:paddingBottom="10dp"
            android:text="@string/static_highways"
            android:textColor="#FFFFFF"
            android:textSize="20sp" />        

        <CheckBox
            android:id="@+id/tolls_checkbox"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/static_tolls"
            android:layout_alignBottom="@+id/static_tolls"
            android:layout_alignParentRight="true"
            android:text="@string/checkbox" />

        <CheckBox
            android:id="@+id/highways_checkbox"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/static_highways"
            android:layout_alignBottom="@+id/static_highways"
            android:layout_alignParentRight="true"
            android:text="@string/checkbox" />

        <CheckBox
            android:id="@+id/useLocation_checkbox"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/static_useCurrentLocation"
            android:layout_alignBottom="@+id/static_useCurrentLocation"
            android:layout_alignParentRight="true"
            android:text="@string/checkbox" />      

    </RelativeLayout>

    <TextView
        android:id="@+id/static_destination"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/static_destination"
        android:textColor="#FFFFFF"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <AutoCompleteTextView
        android:id="@+id/aComplete_destination"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textNoSuggestions"
        android:text="@string/aComplete_destination" />

    <TextView
        android:id="@+id/static_language"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/static_language"
        android:textColor="#FFFFFF"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <RadioGroup
        android:id="@+id/radioGroup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <RadioButton
            android:id="@+id/radio_english"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:textColor="#FFFFFF"
            android:layout_marginRight="20dp"
            android:text="@string/radio_english" />

        <RadioButton
            android:id="@+id/radio_portugues"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#FFFFFF"
            android:text="@string/radio_portugues" />
    </RadioGroup>

    <Button
        android:id="@+id/btn_getDirections"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/btn_getDirections" />

</LinearLayout>

</ScrollView>
于 2013-06-30T21:44:26.377 回答