我正在尝试制作适合水平的垂直方向滚动的屏幕,因为它不适合且不滚动。我添加了一个滚动视图,其中包含线性布局的单个子项以及我想要的视图。没有错误但是当我将手机转到水平方向时它仍然不会滚动。我究竟做错了什么?下面是我的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 :(得分:1)
您的ScrollView
及其内容的大小始终相同。视图布局不关注它是否在屏幕上可见。目前,布局中的最后TextView
和Button
可能也隐藏在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:scrollbars
和android:scrollbarStyle
中定义滚动条。开发人员说这是为了容纳IME,但我发现它不仅适用于此。