1

我正在尝试将我的布局中的七个按钮放在一个小屏幕中进行测试(Galaxy young),所以我使用了滚动视图,但我仍然遇到问题(屏幕在 LandScape 模式下不滚动)。

这是我的 xml 代码:

 <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:fillViewport="true">

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:orientation="horizontal" >

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
         android:layout_height="?android:attr/listPreferredItemHeight"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:gravity="center_horizontal"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/lieu_depart"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Lieu de prise en charge"
            style="" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_alignParentLeft="false"
        android:layout_alignParentRight="false"
        android:layout_below="@+id/linearLayout1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="@dimen/activity_vertical_margin" >

        <Button
            android:id="@+id/button2_date_depart"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="50dp"
            android:text="Date1" />

        <Button
            android:id="@+id/time_depart5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="70dp"
            android:text="Time1" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout3"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_below="@+id/linearLayout2"
        android:layout_centerHorizontal="true"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/button4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:minWidth="@dimen/activity_vertical_margin"
            android:text="Lieu de restitution" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/linearLayout3"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/button5_date_arrive"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="50dp"
            android:text="Date2" />

        <Button
            android:id="@+id/button6_time_arrive"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="70dp"
            android:text="Time2" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/linearLayout4"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/Button03"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="Button" />

    </LinearLayout>

</RelativeLayout>
</ScrollView>

编辑肖像模式:

在此处输入图像描述

横向模式:

在此处输入图像描述

我应该用什么来限制这个问题?

谢谢

4

3 回答 3

0

正如我从您的问题中了解到的那样,它适用于纵向而不是横向,所以试试这个。当您旋转设备时,它仍应滚动。我已将其放置在一个布局中,而不是多个布局中。

<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=".MainActivity" >

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


   <Button
        android:id="@+id/lieu_depart"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Lieu de prise en charge"
        style="" />

    <Button
        android:id="@+id/button2_date_depart"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="50dp"
        android:text="Date1" />

    <Button
        android:id="@+id/time_depart5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="70dp"
        android:text="Time1" />

    <Button
        android:id="@+id/button4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minWidth="@dimen/activity_vertical_margin"
        android:text="Lieu de restitution" />

    <Button
        android:id="@+id/button5_date_arrive"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="50dp"
        android:text="Date2" />

    <Button
        android:id="@+id/button6_time_arrive"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="70dp"
        android:text="Time2" />

    <Button
        android:id="@+id/Button03"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Button" />

       </RelativeLayout>                    
     </ScrollView>


 </RelativeLayout>

编辑...

您需要在每个按钮处添加“android:layout_below="@+id/your button id”,以便按钮将显示在彼此下方。

 <Button
        android:id="@+id/lieu_depart"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Lieu de prise en charge"
        style="" />

    <Button
        android:id="@+id/button2_date_depart"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/lieu_depart"
        android:layout_marginLeft="50dp"
        android:text="Date1" />

    <Button
        android:id="@+id/time_depart5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/button2_date_depart"
        android:layout_marginLeft="70dp"
        android:text="Time1" />

    <Button
        android:id="@+id/button4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/time_depart5"
        android:minWidth="@dimen/activity_vertical_margin"
        android:text="Lieu de restitution" />

    <Button
        android:id="@+id/button5_date_arrive"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/button4"
        android:layout_marginLeft="50dp"
        android:text="Date2" />

    <Button
        android:id="@+id/button6_time_arrive"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="70dp"
        android:layout_below="@+id/button5_date_arrive"
        android:text="Time2" />

    <Button
        android:id="@+id/Button03"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/button6_time_arrive"
        android:gravity="center"
        android:text="Button" />

然后,您可以通过设置重力和边距来调整按钮的布局。这现在应该可以解决您遇到的问题。

于 2013-08-11T07:22:59.890 回答
0

编辑..

要更正此问题,您需要将以下内容添加到您的按钮“android:layout_below="@id/id of your button”中,请参见下文..

<Button
    android:id="@+id/lieu_depart"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Lieu de prise en charge"
    style="" />

<Button
    android:id="@+id/button2_date_depart"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="50dp"
    android:layout_below="@id/lieu_depart"
    android:text="Date1" />

<Button
    android:id="@+id/time_depart5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="70dp"
    android:layout_below="@id/button2_date_depart"
    android:text="Time1" />

<Button
    android:id="@+id/button4"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minWidth="@dimen/activity_vertical_margin"
    android:layout_below="@id/time_depart5"
    android:text="Lieu de restitution" />

<Button
    android:id="@+id/button5_date_arrive"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/button4"
    android:layout_marginLeft="50dp"
    android:text="Date2" />

<Button
    android:id="@+id/button6_time_arrive"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/button5_date_arrive"
    android:layout_marginLeft="70dp"
    android:text="Time2" />

<Button
    android:id="@+id/Button03"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/button6_time_arrive"
    android:gravity="center"
    android:text="Button" />

然后,您可以使用按钮的重力和边距等。现在应该可以解决您的问题。

于 2013-08-12T15:18:08.647 回答
0

您必须在 ScrollView 中使用 LienarLayout。RelativeLayout 忽略方向并在您希望将项目放置在绝对位置时使用。您的 xml 布局有很多需要更改的地方。你能发送你的布局图像来了解你想要什么。

在这里你有:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Starting place" />
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center">
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Date 1" />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Time 1" />
    </LinearLayout>
    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Arrival place" />
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center">
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Date2" />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="50dp"
            android:text="Time2" />
    </LinearLayout>
    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Submit" />
</LinearLayout>
</ScrollView>

在最后一个线性布局第二个按钮中,我包含了 layout_marginLeft,但使用线性布局重心,它将使按钮居中并在两个按钮之间划分该空间,因此您可以在它们之间使用空间进行操作。

默认情况下,布局将填充父级,但在您的第二张图片中,如果需要,您可以使用右边距之类的东西,您可以使用 android配置限定符,但不重复布局 xml 的更好方法是使用 values-land 限定符并添加 dimens 文件夹,您可以在其中添加填充值并将您的布局添加到滚动视图android:paddingRight="@dimen/your_property_name"的第一个布局子项中。更多关于dimen资源

于 2013-08-12T16:33:44.090 回答