为什么Horizo​​ntalScrollView向右滚动?

时间:2014-08-28 10:29:52

标签: android android-edittext horizontalscrollview

以下XML包含EditText控件。一触摸它,软键盘就会出现,但Horizo​​ntalScrollView会向右滚动,所以我看不到EditText!

有人可以告诉我下面的XML有什么问题以及为什么会这样做?

请原谅硬编码宽度 - 这只是进行健全性检查的测试代码。

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">

<HorizontalScrollView 
  android:id="@+id/testScrollView"
  android:layout_width="1280dp"
  android:layout_height="match_parent"
  android:scrollbars="horizontal"
  android:background="#00FF00">

  <LinearLayout 
    android:id="@+id/layout"
    android:layout_width="2560dp"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <LinearLayout 
      android:id="@+id/mLeftBaseLinearLayout"
      android:layout_width="1280dp"
      android:layout_height="match_parent"
      android:orientation="vertical"
      android:background="#FF0000">

     <EditText
       android:id="@+id/mEditText"
       android:layout_width="match_parent"
       android:layout_height="40dp"
       android:background="#BBBBBB"
       android:gravity="center"
       android:text="EditText"
       android:textColor="#FFFF00"
       android:textSize="30dp"
       android:singleLine="true"
       android:clickable="true"
       android:editable="true"
       android:focusable="true"
       android:focusableInTouchMode="true"
       android:inputType="text"/>

     <ListView          
       android:id="@+id/mListView"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_weight="1"
       android:background="#80FFFFFF" >
     </ListView>

    </LinearLayout>

    <LinearLayout 
      android:id="@+id/linLayout"
      android:layout_width="1280dp"
      android:layout_height="match_parent"
      android:orientation="vertical"
      android:background="#00FF00">

      <Button
        android:layout_width="600dp"
        android:layout_height="wrap_content"
        android:text="Button1" />

      <Button
        android:layout_width="600dp"
        android:layout_height="wrap_content"
        android:text="Button2" />            

    </LinearLayout>        

  </LinearLayout>

</HorizontalScrollView>

</FrameLayout>

我的平板电脑正在运行Android 4.2.1

2 个答案:

答案 0 :(得分:0)

好的,我一直在查看你的布局并进行了一些更改,它在我的电脑上看起来还不错。

首先,mEditText是不必要的,可以避免。如果你想要一个mListView标题

yourListView.addHeaderView(View v, Object data, boolean isSelectable);

这就是我所做的:

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

<HorizontalScrollView
    android:id="@+id/testScrollView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#00FF00"
    android:scrollbars="horizontal" >

    <LinearLayout
        android:id="@+id/layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal" >

        <LinearLayout
            android:id="@+id/mLeftBaseLinearLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#FF0000"
            android:orientation="vertical" >

            <EditText
                android:id="@+id/mEditText"
                android:layout_width="match_parent"
                android:layout_height="40dp"
                android:background="#BBBBBB"
                android:clickable="true"
                android:editable="true"
                android:focusable="true"
                android:focusableInTouchMode="true"
                android:gravity="center"
                android:inputType="text"
                android:singleLine="true"
                android:text="EditText"
                android:textColor="#FFFF00"
                android:textSize="30dp" />

            <ListView
                android:id="@+id/mListView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="#80FFFFFF" >
            </ListView>
        </LinearLayout>

        <LinearLayout
            android:id="@+id/linLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#00FF00"
            android:orientation="vertical" >

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button1" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button2" />
        </LinearLayout>
    </LinearLayout>
</HorizontalScrollView>

</LinearLayout>

如果这不起作用,我们需要查看您的代码。

答案 1 :(得分:0)

我找到了我的解决方案 - 覆盖scrollTo()并且什么都不做。