Android 5.0(棒棒糖) - 当键盘弹出时调整ScrollView滚动视图

7

我在使用安卓棒棒糖时遇到了一个问题,软键盘弹出后屏幕大小没有自动调整。

以下是我制作的其中一个活动的清单介绍示例:

android:windowSoftInputMode="stateAlwaysHidden|adjustResize" 

是否有新的内容需要添加并考虑到Android 5.0?ScrollView在Android < 5.0上工作正常。

3个回答

5

对于那些即使在ScrollView中已经设置了android:fitsSystemWindows="true" 仍然存在此问题的人们,我找到了几种解决方法:

  1. 使用根布局为fragment.xml的RelativeLayout,并在其中添加android:fitsSystemWindows="true"。将ScrollView作为RelativeLayout的子级。
<RelativeLayout android:fitsSystemWindows="true">
  <ScrollView/>
</RelativeLayout>
  1. 使用NestedScrollView代替ScrollView。

这两个选项都应该与android:windowSoftInputMode="adjustResize"一起使用,并且在Android 5上使用<item name="android:windowTranslucentStatus">true</item>标记。


我不确定如何实现。你能详细说明一下吗?谢谢。 - mikep

4
问题在于它不能与半透明状态栏一起使用,我不得不进行设置。
 android:fitsSystemWindows="true"

在我的主布局中。

你救了我!谢谢你。我已经寻找这个答案两天了。 - DeniSHow

-1

我尝试过的所有方法都没有奏效,我已经尝试了每种可能的不同清单设置组合,但都无济于事。

这个方法有点hacky,但对我来说非常有效:

((RelativeLayout) findViewById(R.id.rootLayout)).addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
            @Override
            public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
                scrollToLatest(); // Do your scrolling!
            }
        });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接