无法滚动工作

时间:2011-04-29 21:19:22

标签: android scroll scrollview

我正在尝试制作适合水平的垂直方向滚动的屏幕,因为它不适合且不滚动。我添加了一个滚动视图,其中包含线性布局的单个子项以及我想要的视图。没有错误但是当我将手机转到水平方向时它仍然不会滚动。我究竟做错了什么?下面是我的XML

由于

<TextView 
android:text="test App" 
android:textSize="20dp"
android:layout_gravity="center_horizontal"
android:textColor="#FCFCFC" 
android:id="@+id/textView1" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"
></TextView>

<TextView 
android:text="" 
android:textSize="20dp"
android:layout_gravity="center_horizontal"
android:textColor="#FCFCFC" 
android:id="@+id/textView3" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"
></TextView>


<ScrollView
android:layout_width="match_parent"
android:layout_height="400dp"
>

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



<TextView 
android:text="Last Name" 
android:textSize="15dp"
android:id="@+id/textView4" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"
android:textColor="#FCFCFC"
android:singleLine="true"
></TextView>



<EditText 
android:layout_width="fill_parent" 
android:id="@+id/editText1" 
android:layout_height="wrap_content" 
android:text=""
android:singleLine="true"
></EditText>


<TextView 
android:text="" 
android:textSize="10dp"
android:layout_gravity="center_horizontal"
android:id="@+id/textView5" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"
></TextView>


<TextView 
android:text="First Name"
android:textSize="15dp"
android:id="@+id/textView6" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"
android:textColor="#FCFCFC"
android:singleLine="true"
></TextView>

<EditText 
android:layout_width="fill_parent" 
android:id="@+id/editText2" 
android:layout_height="wrap_content" 
android:text=""
android:textSize="20dp"
android:singleLine="true"
></EditText>


<TextView 
android:layout_gravity="center_horizontal" 
android:text=""
android:textSize="15dp"
android:layout_width="wrap_content" 
android:id="@+id/TextView01" 
android:layout_height="wrap_content"
></TextView>

<TextView 
android:text="Description" 
android:textSize="15dp"
android:id="@+id/textView4" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"
android:textColor="#FCFCFC"
android:singleLine="true"
></TextView>


 <EditText 
android:layout_width="fill_parent" 
android:id="@+id/editText1" 
android:layout_height="wrap_content" 
android:text=""
android:textSize="15dp"
android:singleLine="false"
android:lines="10"
></EditText>



</LinearLayout>
</ScrollView>




<TextView 
android:layout_gravity="center_horizontal" 
android:text="" 
android:id="@+id/TextView02" 
android:textColor="#FCFCFC" 
android:textSize="5dp" 
android:layout_height="wrap_content" 
android:layout_width="wrap_content"
></TextView>


<Button 
android:text="Next"
android:textSize="20dp"
android:layout_gravity="center_horizontal"
android:id="@+id/nextpage" 
android:layout_width="150dp" 
android:layout_height="60dp"
android:layout_alignParentBottom="true"
></Button>

5 个答案:

答案 0 :(得分:1)

您的ScrollView及其内容的大小始终相同。视图布局不关注它是否在屏幕上可见。目前,布局中的最后TextViewButton可能也隐藏在lanscape模式中(我假设所有这些都包含在根LinearLayout中,因为缺少根标记)。 ScrollView简单地说,“如果我的内容比我大,我会滚动它们。”

您应该考虑一种布局,其顶部元素悬挂在顶部,底部两个元素悬挂在底部,滚动视图填充其间的空间。这样,当涉及到横向时,视图将更小,内容将开始滚动。

以下是我想要的内容:)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
  <!-- Top Elements -->
  <TextView 
    android:text="test App" 
    android:textSize="20dp"
    android:layout_gravity="center_horizontal"
    android:textColor="#FCFCFC" 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" />
  <TextView 
    android:text="" 
    android:textSize="20dp"
    android:layout_gravity="center_horizontal"
    android:textColor="#FCFCFC" 
    android:id="@+id/textView3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:layout_below="@id/textView1" />

  <!-- Bottom Elements -->
  <Button 
    android:text="Next"
    android:textSize="20dp"
    android:layout_gravity="center_horizontal"
    android:id="@+id/nextpage" 
    android:layout_width="150dp" 
    android:layout_height="60dp"
    android:layout_alignParentBottom="true" />
  <TextView 
    android:layout_gravity="center_horizontal" 
    android:text="" 
    android:id="@+id/TextView02" 
    android:textColor="#FCFCFC" 
    android:textSize="5dp" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content"
    android:layout_above="@id/nextpage" />

  <ScrollView
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:layout_below="@id/textView3"
    android:layout_above="@id/TextView02">
    <LinearLayout
      android:orientation="vertical"
      android:layout_width="match_parent"
      android:layout_height="wrap_content">
      <TextView 
        android:text="Last Name" 
        android:textSize="15dp"
        android:id="@+id/textView4" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:textColor="#FCFCFC"
        android:singleLine="true" />
      <EditText 
        android:layout_width="fill_parent" 
        android:id="@+id/editText1" 
        android:layout_height="wrap_content" 
        android:text=""
        android:singleLine="true" />
      <TextView 
        android:text="" 
        android:textSize="10dp"
        android:layout_gravity="center_horizontal"
        android:id="@+id/textView5" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" />
      <TextView 
        android:text="First Name"
        android:textSize="15dp"
        android:id="@+id/textView6" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:textColor="#FCFCFC"
        android:singleLine="true" />
      <EditText 
        android:layout_width="fill_parent" 
        android:id="@+id/editText2" 
        android:layout_height="wrap_content" 
        android:text=""
        android:textSize="20dp"
        android:singleLine="true" />
      <TextView 
        android:layout_gravity="center_horizontal" 
        android:text=""
        android:textSize="15dp"
        android:layout_width="wrap_content" 
        android:id="@+id/TextView01" 
        android:layout_height="wrap_content" />
      <TextView 
        android:text="Description" 
        android:textSize="15dp"
        android:id="@+id/textView4" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:textColor="#FCFCFC"
        android:singleLine="true" />
     <EditText 
        android:layout_width="fill_parent" 
        android:id="@+id/editText1" 
        android:layout_height="wrap_content" 
        android:text=""
        android:textSize="15dp"
        android:singleLine="false"
        android:lines="10" />
    </LinearLayout>
  </ScrollView>

</RelativeLayout>

在这种情况下,我不相信你的400dp高度是必要的,因为底部元素将悬挂在屏幕的底部而不是你需要一个固定的高度来将它们分开。但是,如果它仍然相关,请将其放在LinearLayout内的ScrollView,而不是ScrollView本身。这是整个布局,BTW。不要插入任何东西。

如果这不完全符合您的要求,希望它能让您走上正确的道路:)

希望有帮助!

答案 1 :(得分:0)

您是否尝试水平滚动ScrollView?根据API(http://developer.android.com/reference/android/widget/ScrollView.html),ScrollViews只能垂直工作。您可能必须编写自己的ScrollView实现,它可以水平滚动。

答案 2 :(得分:0)

您必须使用HorizontalScrollView进行水平滚动

答案 3 :(得分:0)

    <ScrollView 
    android:id="@+id/scrllvwNo1" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content">
    <HorizontalScrollView 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content">        
             <TextView
             android:id="@+id/text"
             android:text="your text"
             android:gravity="center"
             android:background="#0000aa"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"/>        
    </HorizontalScrollView> 
    </ScrollView>       

答案 4 :(得分:0)

我认为你要找的是android:isScrollContainer xml元素。将其设置为true并在android:scrollbarsandroid:scrollbarStyle中定义滚动条。开发人员说这是为了容纳IME,但我发现它不仅适用于此。