2011-04-29 51 views
0

我正在尝试使屏幕适合水平方向的垂直方向滚动,因为它不适合并且不滚动。我添加了一个滚动视图,其中包含线性布局的单个子视图和我想要的视图。没有错误,但是当我将手机调到水平方向时,它仍然不滚动。我究竟做错了什么?下面是我的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> 

+0

在滚动视图中删除dang“400dp”定义的高度。使它成为'match_parent'。 – binnyb 2011-04-29 21:37:16

回答

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高度在这种情况下,必要的,因为底部的元素将挂在屏幕的底部,而不是你需要一个的固定高度将它们分开。但是,如果它仍然相关,请将其放在ScrollViewLinearLayout之内,而不是ScrollView本身。这是整个布局,BTW。不要插入任何东西。

如果这不是正是你所寻找的,希望它让你在正确的道路:)

希望帮助吧!

+0

这就是我想要做的。但是当我打开电话时它不起作用。屏幕上的内容停留在那里,我不能滚动 – codemanusa 2011-04-29 21:31:44

+0

是的最终LinearLayout被切断了 – codemanusa 2011-04-29 21:35:38

+0

编辑与布局我想你会去...试试吧。 – Devunwired 2011-04-29 21:53:35

0

你们是不是要水平滚动了滚动?根据API(http://developer.android.com/reference/android/widget/ScrollView.html),ScrollViews只能垂直工作。你可能必须编写你自己的水平滚动的ScrollView实现。

+0

这似乎是应该自动发生的事情。我的布局垂直安装,但打开手机时间太长。我只是想让它滚动,因为我在布局的底部有一个按钮。现在我必须编写一堆代码来做到这一点?看起来不正确。 – codemanusa 2011-04-29 21:27:07

+0

忘了'Horizo​​ntalScrollView'的存在,傻了我。我仍然有点困惑。你说你在底部有一个按钮......当你的手机处于横向模式时,你想要垂直滚动吗? – BigFwoosh 2011-04-29 21:30:31

+0

是的,这是正确的 – codemanusa 2011-04-29 21:33:20

0

你必须使用HorizontalScrollView移动水平滚动条

+0

我认为这也是让屏幕水平滚动。我想让它在水平方向上垂直滚动。 – codemanusa 2011-04-29 21:29:05

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>  
+0

它涵盖了垂直和水平滚动... – 2011-04-29 21:45:34

0

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