尝试在小屏幕上显示带滚动视图的七个按钮

时间:2013-08-11 04:48:39

标签: android scrollview android-2.3-gingerbread

我正在尝试在小屏幕上放置我的布局七个按钮来测试它( 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>

修改的: 肖像模式:

enter image description here

横向模式:

enter image description here

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

谢谢

3 个答案:

答案 0 :(得分: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 /你的按钮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" />

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

答案 1 :(得分:0)

EDIT ..

要更正此问题,您需要将以下内容添加到按钮“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" />

然后,您可以使用按钮的重力和边距等来进行游戏。这应该可以解决您的问题。

答案 2 :(得分: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>

在最后一个linearlayout第二个按钮中,我有 layout_marginLeft ,但是有了linearlayout重心,它会将按钮分开并将这个空间分成两个按钮,这样你就可以在它们之间用空格进行操作。

默认情况下布局会填充父级,但是在第二个图像中你有一些像右边距的东西,如果你需要它你可以使用android configuration qualifiers但更好的方法是不重复布局xml是使用values-land限定符并添加维度文件夹,您可以在其中添加填充值并将您的布局添加到scrollview的第一个布局子项 android:paddingRight =“@ dimen / your_property_name”。有关dimen resources的更多信息。