单击嵌套Scrollview内的Edittext滚动外部scrollview

时间:2014-03-21 07:22:41

标签: android android-layout horizontalscrollview android-scrollview

我有一个包含各种布局的父horizo​​ntalScrollview。在一个特定的布局中有一个滚动视图。在该scrollview中有edittext。 现在,当我单击任何edittext进行输入时,水平滚动视图会自动将屏幕滚动到其他布局,我无法看到当前活动布局(包含scrollview)。

我知道嵌套的scrollviews是一种糟糕的编码习惯,但在这种情况下我无法改变它,因为会有大量的返工。有没有解决方法。

以下是包含horizo​​ntalscrollview的主要布局的xml代码: -

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

<HorizontalScrollView
    android:id="@+id/CloudHScrollView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
</RelativeLayout>

以下是稍后在某个阶段插入的子布局之一的代码。此布局包含具有edittexts的scrollview: -

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

<ScrollView
    android:id="@+id/scrollview"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="0dp"
    android:background="@drawable/blueoverlay"
    android:fillViewport="true" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:paddingBottom="300dp"
        android:paddingTop="90dp" >

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

            <EditText
                android:id="@+id/edittext"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@null"
                android:gravity="right"
                android:singleLine="true"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:textColor="@android:color/black" />
        </LinearLayout>
    </LinearLayout>
</ScrollView>

2 个答案:

答案 0 :(得分:0)

我不确定这是否可行,但您可以尝试扩展外部ScrollView类并自行处理其onScroll事件。

看这里:

listening to scroll events horizontalscrollview android

Android: how to listen for scrolling events?

答案 1 :(得分:0)

我遇到了同样的问题,通过将以下内容添加到AndroidManifest.xml文件中来解决相应的问题。

android:windowSoftInputMode="adjustResize"