我的布局如下所示:

<RelativeLayout>
    <RelativeLayout>
    </RelativeLayout>
    <ViewFlipper>
        <ScrollView>
            <LinearLayout>
                <EditText />
            </LinearLayout>
        </ScrollView>
    </ViewFlipper>
    <RelativeLayout>
    </RelativeLayout>
</RelativeLayout>

当将重点放在中间的EditText上时,软键盘会按预期方式弹出,但是即使 list 中有android:windowSoftInputMode="adjustPan",它也会始终调整布局的大小。

调整大小的问题在于,只有ScrollView会缩小,而其上方和下方的RelativeLayouts则保持不变,这几乎会使EditText变得晦涩难懂。

我曾尝试在显示键盘时隐藏RelativeLayouts(这是另一个可悲的故事),但是AdjustPan听起来更合适。但是,它对此 Activity 没有影响。

尽管存在ScrollView,如何强制adjustPan工作?

更新:

因此,我不会回答我自己的问题,但是解决方案是在ScrollView上设置android:isScrollContainer="false"

最佳答案

开发人员通常会做同样的事情,但这不是您需要做的正确方法。这将为您提供帮助。

 <?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">


<ViewFlipper>
    <ScrollView
      android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       >
        <LinearLayout
          android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:orientation="vertical"
        >
            <EditText />
        </LinearLayout>
    </ScrollView>
</ViewFlipper>
<LinearLayout>

您应该将LinearLayout的方向设置为Vertical或水平 View ,这样就不会产生调整问题。这非常简单。

关于android - 在包含ScrollView的 Activity 中强制AdjustPan,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6114993/

10-09 06:11