Android ScrollView无法正常工作

时间:2012-05-20 00:28:34

标签: android scrollview

这是我的.xml文件,其中我在输入Edittext中使用了两个scrollview,在输出TextView中使用了onether。这里有什么问题...它在android设备中无效。

另一个问题是,当我转动设备时,它只显示输入文本区域。输出文本区域下降。我想看输入的半屏和输出区的半屏。

如何解决?

由于

  <?xml version="1.0" encoding="utf-8"?>
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical" >

  <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="35dp"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/test"
        android:layout_width="60dp"
        android:layout_height="38dp"
        android:text="@string/test" />

    <Button
        android:id="@+id/rdf"
        android:layout_width="60dp"
        android:layout_height="38dp"
        android:text="@string/rdf" />

    <Button
        android:id="@+id/load"
        android:layout_width="75dp"
        android:layout_height="38dp"
        android:text="@string/load" />

    <Button
        android:id="@+id/clear"
        android:layout_width="60dp"
        android:layout_height="38dp"
        android:text="@string/clear" />

    <Button
        android:id="@+id/close"
        android:layout_width="fill_parent"
        android:layout_height="38dp"
        android:text="@string/close" />

  </LinearLayout>

   <ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

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

        <EditText
            android:id="@+id/input"
            android:layout_width="0dp"
            android:layout_height="175dp"
            android:layout_weight="1"
            android:background="#fff"
            android:ems="10"
            android:gravity="top|left"
            android:textSize="14dp"
            android:inputType="textMultiLine" >

            <requestFocus />
        </EditText>
    </LinearLayout>
   </ScrollView>

   <Button
    android:id="@+id/run"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/run" />

   <ScrollView
    android:id="@+id/scrollView2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

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

        <TextView
            android:id="@+id/output"
            android:layout_width="match_parent"
            android:layout_height="225dp"
            android:background="#fff"
            android:text="@string/output"
            android:textColor="#1e90ff" />
    </LinearLayout>
 </ScrollView>

</LinearLayout>

2 个答案:

答案 0 :(得分:0)

尝试为两个滚动视图而不是它们设置layout_weight = 1和layout_height = 0dp 内容。

答案 1 :(得分:0)

  

这里有什么问题......它在Android设备中无效。

这很模糊。你有什么期望?什么不起作用?换句话说,请更具体一点。

但是,根据给出的布局代码,这里有一些建议:

  1. 避免硬编码视图的大小。您无法根据各种屏幕尺寸,密度和设备对屏幕尺寸进行假设。此外,即使您能够在纵向模式下使布局看起来很漂亮,它也可能与风景中的布局不太接近。
  2. 如果您只在View中放置一个ScrollView,则无需将其包装在ViewGroup容器中;只需直接设置View,而无需再次嵌套,并为视图层次结构添加了额外的复杂层。
  3. 没有必要用TextView包裹EditTextScrollView,因为两个视图都可以单独滚动。
  4. 关于你的第二个问题:你可以阻止Android在弹出键盘时留下很少的布局空间时提取所有UI组件。您需要在EditText或xml:IME_FLAG_NO_EXTRACT_UI中设置android:imeOptions="flagNoExtractUi"标记。

    我想指出Android默认情况下有这种行为的原因。在大多数情况下,强制UI的一小部分是可见的几乎没有意义,甚至更多,因为用户键入的内容可能是真正重要的。