2

这是我的 .xml 文件,我在其中使用了两个滚动视图,输入 Edittext 和输出 TextView 中的一个。这里有什么问题......它在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>
4

2 回答 2

0

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

于 2012-05-20T01:10:48.113 回答
0

这里有什么问题......它在android设备中不起作用。

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

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

  1. 避免硬编码视图的大小。您无法对屏幕尺寸、密度和设备种类繁多的屏幕尺寸做出假设。此外,即使您能够使布局在纵向模式下看起来不错,它可能甚至不会接近横向模式。
  2. 如果您只想将单个View放入 a 中ScrollView,则无需将其包装在ViewGroup容器中;只需View直接设置,无需再次嵌套,并为视图层次结构增加了一层额外的复杂性。
  3. 没有必要用 aTextViewEditTexta包装ScrollView,因为这两个视图本身都是可滚动的。

关于您的第二个问题:当键盘弹出时剩下的布局空间很少时,您可以阻止 Android 提取所有 UI 组件。您需要IME_FLAG_NO_EXTRACT_UI在 EditText 或 xml: 中设置标志android:imeOptions="flagNoExtractUi"

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

于 2012-05-20T02:27:59.417 回答