我的布局是这样的:
<RelativeLayout>
<RelativeLayout>
</RelativeLayout>
<ViewFlipper>
<ScrollView>
<LinearLayout>
<EditText />
</LinearLayout>
</ScrollView>
</ViewFlipper>
<RelativeLayout>
</RelativeLayout>
</RelativeLayout>
当专注于中间的 EditText 时,软键盘会按预期弹出,但是它总是会调整布局大小,即使我有 android:windowSoftInputMode="adjustPan"
在 list 中。
调整大小的问题是只有 ScrollView 缩小了,它上面和下面的 RelativeLayouts 完好无损,这几乎可以完全遮住 EditText。
我试过在显示键盘时隐藏 RelativeLayouts(这是另一个悲伤的故事),但 adjustPan 听起来更合适。但是,它对此 Activity 没有影响。
如何在存在 ScrollView 的情况下强制 adjustPan 工作?
更新:
所以不会让我回答我自己的问题,但解决方案是设置 android:isScrollContainer="false"
在 ScrollView 上。
最佳答案
好问题,大多数开发人员做同样的事情,但这不是您需要做的正确方法。这会对您有所帮助。
<?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 的方向设置为垂直或水平 View ,这样您就不会产生调整问题。这非常简单。
关于android - 在包含 ScrollView 的 Activity 中强制执行 adjustPan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6114993/