2013-07-22 264 views
4

我想让我的活动屏幕有一个窗体被填充滚动,但不幸的是,当我尝试它崩溃的应用程序。我该活动的下面的XML:android可滚动的活动布局

<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" 
    android:background="@color/background" 
    android:paddingBottom="16dp" 
    android:paddingLeft="16dp" 
    android:paddingRight="16dp" 
    android:paddingTop="16dp" 
    android:textDirection="anyRtl" 
    tools:context=".AddDiscountActivity" > 

    <TextView 
     android:id="@+id/textView4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignRight="@+id/textView3" 
     android:layout_below="@+id/textView3" 
     android:layout_marginTop="19dp" 
     android:text="@string/discountLocationLabel" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:textColor="@color/white" 
     android:textStyle="bold" /> 

    <EditText 
     android:id="@+id/shopLocation" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/textView4" 
     android:layout_alignBottom="@+id/textView4" 
     android:layout_alignRight="@+id/shopCity" 
     android:ems="10" 
     android:inputType="text" /> 

    <TextView 
     android:id="@+id/textView6" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignRight="@+id/textView5" 
     android:layout_below="@+id/shopDiscount" 
     android:layout_marginTop="21dp" 
     android:text="@string/discountDurationLabel" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:textColor="@color/white" 
     android:textStyle="bold" /> 

    <EditText 
     android:id="@+id/shopDiscountDuration" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/textView6" 
     android:layout_alignLeft="@+id/shopDiscount" 
     android:ems="10" 
     android:inputType="text" /> 

    <TextView 
     android:id="@+id/textView5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/shopDiscount" 
     android:layout_alignParentRight="true" 
     android:text="@string/discountRateLabel" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:textColor="@color/white" 
     android:textStyle="bold" /> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/textView6" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="18dp" 
     android:background="@drawable/roundbutton" 
     android:text="@string/discountPublishButtonLabel" 
     android:textColor="@color/white" 
     android:onClick="SubmitData" 
     android:width="250dp" /> 

    <EditText 
     android:id="@+id/shopCity" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/textView4" 
     android:layout_alignRight="@+id/shopName" 
     android:ems="10" 
     android:inputType="text" > 


    </EditText> 

    <EditText 
     android:id="@+id/shopDiscount" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/shopLocation" 
     android:layout_below="@+id/shopLocation" 
     android:layout_marginTop="14dp" 
     android:ems="10" 
     android:inputType="number" /> 

    <EditText 
     android:id="@+id/shopName" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/textView2" 
     android:layout_alignBottom="@+id/textView2" 
     android:layout_alignParentLeft="true" 
     android:layout_marginLeft="14dp" 
     android:ems="10" 
     android:inputType="text"> 
     <requestFocus /> 
    </EditText> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/categoriesSpinner" 
     android:layout_alignRight="@+id/textView2" 
     android:text="@string/discountCategoryLabel" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:textColor="@color/white" 
     android:textStyle="bold" /> 

    <Spinner 
     android:id="@+id/categoriesSpinner" 
     android:layout_width="160dp" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/shopName" 
     android:layout_alignLeft="@+id/button1" 
     android:layout_marginBottom="16dp" /> 

    <TextView 
     android:id="@+id/textView3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_alignRight="@+id/textView2" 
     android:layout_marginTop="206dp" 
     android:text="@string/discountCityLabel" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:textColor="@color/white" 
     android:textStyle="bold" /> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/shopCity" 
     android:layout_alignLeft="@+id/textView5" 
     android:layout_marginBottom="18dp" 
     android:text="@string/discountShopLabel" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:textColor="@color/white" 
     android:textStyle="bold" /> 

    <TextView 
     android:id="@+id/textView7" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_alignRight="@+id/textView1" 
     android:layout_marginTop="14dp" 
     android:gravity="right" 
     android:text="@string/addDiscountMsg" 
     android:textAlignment="viewEnd" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:textColor="@color/white" 
     android:textDirection="anyRtl" /> 

</RelativeLayout> 

,当我试图定义的RelativeLayout之后和在关闭的RelativeLayout之前添加以下时,它立即打破了应用程序,当我运行它。

<ScrollView 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      > 

      ........... 
</ScrollView> 

我该如何让它滚动?

+0

你能请张贴整个xml文件? – Wenhui

+0

这是此活动的整个xml文件我的朋友 –

+0

好的,那么''的close标记在哪里。 – Wenhui

回答

2

我认为你必须把你的相对布局放在你的滚动视图中(在定义和关闭之后)。

编辑:您还必须在衬板布局附上相对布局

例如:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/scroll" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fillViewport="true" 
    android:stackFromBottom="true" 
    android:transcriptMode="alwaysScroll" > 

    <LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/background" 
    android:paddingBottom="16dp" 
    android:paddingLeft="16dp" 
    android:paddingRight="16dp" 
    android:paddingTop="16dp" 
    android:textDirection="anyRtl" 
    tools:context=".AddDiscountActivity" > 
    </RelativeLayout> 

    </LinearLayout> 

</SrcollView> 
+0

这是不允许的。它会在相对布局 –

+0

之前引发定义xmlns的错误Ok对不起。我在里面使用了线性布局,它工作正常。 –

+0

您还必须将相对布局放入线性布局中,这显然是必要的。 –

7

像这样做,它的工作:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
<RelativeLayout 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@color/background" 
android:paddingBottom="16dp" 
android:paddingLeft="16dp" 
android:paddingRight="16dp" 
android:paddingTop="16dp" 
android:textDirection="anyRtl" 
tools:context=".AddDiscountActivity" > 

<TextView 
    android:id="@+id/textView4" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignRight="@+id/textView3" 
    android:layout_below="@+id/textView3" 
    android:layout_marginTop="19dp" 
    android:text="@string/discountLocationLabel" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:textColor="@color/white" 
    android:textStyle="bold" /> 

<EditText 
    android:id="@+id/shopLocation" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBaseline="@+id/textView4" 
    android:layout_alignBottom="@+id/textView4" 
    android:layout_alignRight="@+id/shopCity" 
    android:ems="10" 
    android:inputType="text" /> 

<TextView 
    android:id="@+id/textView6" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignRight="@+id/textView5" 
    android:layout_below="@+id/shopDiscount" 
    android:layout_marginTop="21dp" 
    android:text="@string/discountDurationLabel" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:textColor="@color/white" 
    android:textStyle="bold" /> 

<EditText 
    android:id="@+id/shopDiscountDuration" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/textView6" 
    android:layout_alignLeft="@+id/shopDiscount" 
    android:ems="10" 
    android:inputType="text" /> 

<TextView 
    android:id="@+id/textView5" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/shopDiscount" 
    android:layout_alignParentRight="true" 
    android:text="@string/discountRateLabel" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:textColor="@color/white" 
    android:textStyle="bold" /> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/textView6" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="18dp" 
    android:background="@drawable/roundbutton" 
    android:text="@string/discountPublishButtonLabel" 
    android:textColor="@color/white" 
    android:onClick="SubmitData" 
    android:width="250dp" /> 

<EditText 
    android:id="@+id/shopCity" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/textView4" 
    android:layout_alignRight="@+id/shopName" 
    android:ems="10" 
    android:inputType="text" > 


</EditText> 

<EditText 
    android:id="@+id/shopDiscount" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/shopLocation" 
    android:layout_below="@+id/shopLocation" 
    android:layout_marginTop="14dp" 
    android:ems="10" 
    android:inputType="number" /> 

<EditText 
    android:id="@+id/shopName" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBaseline="@+id/textView2" 
    android:layout_alignBottom="@+id/textView2" 
    android:layout_alignParentLeft="true" 
    android:layout_marginLeft="14dp" 
    android:ems="10" 
    android:inputType="text"> 
    <requestFocus /> 
</EditText> 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/categoriesSpinner" 
    android:layout_alignRight="@+id/textView2" 
    android:text="@string/discountCategoryLabel" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:textColor="@color/white" 
    android:textStyle="bold" /> 

<Spinner 
    android:id="@+id/categoriesSpinner" 
    android:layout_width="160dp" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/shopName" 
    android:layout_alignLeft="@+id/button1" 
    android:layout_marginBottom="16dp" /> 

<TextView 
    android:id="@+id/textView3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_alignRight="@+id/textView2" 
    android:layout_marginTop="206dp" 
    android:text="@string/discountCityLabel" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:textColor="@color/white" 
    android:textStyle="bold" /> 

<TextView 
    android:id="@+id/textView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/shopCity" 
    android:layout_alignLeft="@+id/textView5" 
    android:layout_marginBottom="18dp" 
    android:text="@string/discountShopLabel" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:textColor="@color/white" 
    android:textStyle="bold" /> 

<TextView 
    android:id="@+id/textView7" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_alignRight="@+id/textView1" 
    android:layout_marginTop="14dp" 
    android:gravity="right" 
    android:text="@string/addDiscountMsg" 
    android:textAlignment="viewEnd" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:textColor="@color/white" 
    android:textDirection="anyRtl" /> 

    </RelativeLayout> 
    </ScrollView> 

希望帮助您

+0

@sys_debug您是否尝试过我的代码 – androidqq6

11

你的应用程序崩溃,因为ScrollView只能托管一个直接的孩子。 从官方文件直接:

布局容器可以由用户 滚动,允许它比物理显示较大的图的层次结构。 ScrollView 是一个FrameLayout,这意味着你应该在其中放置一个包含 内容的子项来滚动;这个孩子本身可能是一个布局复杂的对象层次结构的经理。一个经常使用 的孩子是一个垂直方向的LinearLayout,它呈现一个顶级项目的垂直数组,用户可以滚动浏览。

看这http://developer.android.com/reference/android/widget/ScrollView.html

解决您的XML:

<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" 
    android:background="@color/background" 
    android:paddingBottom="16dp" 
    android:paddingLeft="16dp" 
    android:paddingRight="16dp" 
    android:paddingTop="16dp" 
    android:textDirection="anyRtl" 
    tools:context=".AddDiscountActivity" > 

    <ScrollView 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 

      <TextView 
       android:id="@+id/textView4" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignRight="@+id/textView3" 
       android:layout_below="@+id/textView3" 
       android:layout_marginTop="19dp" 
       android:text="@string/discountLocationLabel" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="@color/white" 
       android:textStyle="bold" /> 

      <EditText 
       android:id="@+id/shopLocation" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignBaseline="@+id/textView4" 
       android:layout_alignBottom="@+id/textView4" 
       android:layout_alignRight="@+id/shopCity" 
       android:ems="10" 
       android:inputType="text" /> 

      <TextView 
       android:id="@+id/textView6" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignRight="@+id/textView5" 
       android:layout_below="@+id/shopDiscount" 
       android:layout_marginTop="21dp" 
       android:text="@string/discountDurationLabel" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="@color/white" 
       android:textStyle="bold" /> 

      <EditText 
       android:id="@+id/shopDiscountDuration" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignBottom="@+id/textView6" 
       android:layout_alignLeft="@+id/shopDiscount" 
       android:ems="10" 
       android:inputType="text" /> 

      <TextView 
       android:id="@+id/textView5" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignBottom="@+id/shopDiscount" 
       android:layout_alignParentRight="true" 
       android:text="@string/discountRateLabel" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="@color/white" 
       android:textStyle="bold" /> 

      <Button 
       android:id="@+id/button1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/textView6" 
       android:layout_centerHorizontal="true" 
       android:layout_marginTop="18dp" 
       android:background="@drawable/roundbutton" 
       android:text="@string/discountPublishButtonLabel" 
       android:textColor="@color/white" 
       android:onClick="SubmitData" 
       android:width="250dp" /> 

      <EditText 
       android:id="@+id/shopCity" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_above="@+id/textView4" 
       android:layout_alignRight="@+id/shopName" 
       android:ems="10" 
       android:inputType="text" /> 

      <EditText 
       android:id="@+id/shopDiscount" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignLeft="@+id/shopLocation" 
       android:layout_below="@+id/shopLocation" 
       android:layout_marginTop="14dp" 
       android:ems="10" 
       android:inputType="number" /> 

      <EditText 
       android:id="@+id/shopName" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignBaseline="@+id/textView2" 
       android:layout_alignBottom="@+id/textView2" 
       android:layout_alignParentLeft="true" 
       android:layout_marginLeft="14dp" 
       android:ems="10" 
       android:inputType="text"> 
       <requestFocus /> 
      </EditText> 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignBottom="@+id/categoriesSpinner" 
       android:layout_alignRight="@+id/textView2" 
       android:text="@string/discountCategoryLabel" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="@color/white" 
       android:textStyle="bold" /> 

      <Spinner 
       android:id="@+id/categoriesSpinner" 
       android:layout_width="160dp" 
       android:layout_height="wrap_content" 
       android:layout_above="@+id/shopName" 
       android:layout_alignLeft="@+id/button1" 
       android:layout_marginBottom="16dp" /> 

      <TextView 
       android:id="@+id/textView3" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentTop="true" 
       android:layout_alignRight="@+id/textView2" 
       android:layout_marginTop="206dp" 
       android:text="@string/discountCityLabel" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="@color/white" 
       android:textStyle="bold" /> 

      <TextView 
       android:id="@+id/textView2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_above="@+id/shopCity" 
       android:layout_alignLeft="@+id/textView5" 
       android:layout_marginBottom="18dp" 
       android:text="@string/discountShopLabel" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="@color/white" 
       android:textStyle="bold" /> 

      <TextView 
       android:id="@+id/textView7" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentTop="true" 
       android:layout_alignRight="@+id/textView1" 
       android:layout_marginTop="14dp" 
       android:gravity="right" 
       android:text="@string/addDiscountMsg" 
       android:textAlignment="viewEnd" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="@color/white" 
       android:textDirection="anyRtl" /> 

     </LinearLayout> 
    </ScrollView> 
</RelativeLayout> 
+0

如果我这样做,它开始告诉我在xml文件的所有区域中删除android:layout_alignRight =“@ + id/textView3”类似的代码。将它们删除不会破坏应用程序本身? –

+0

它告诉你,因为“android:layout_alignRight”是一个RelativeLayout的属性,你可以将LinearLayout更改为RelativeLayout – Tobiel

+0

我不明白这一点......你只是说它只能有一个直接的chlid,但你的例子有几个直接childern./ –