我的布局如下所示:
<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/