我正在尝试在小屏幕上放置我的布局七个按钮来测试它( 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>
修改的: 肖像模式:
横向模式:
我应该用什么来限制这个问题?
谢谢
答案 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的更多信息。