键盘启动时,Android Fragment视图不会滚动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了键盘启动时,Android Fragment视图不会滚动相关的知识,希望对你有一定的参考价值。

我正在加载这样的片段

String tag = fragment.getClass().getSimpleName();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.replace(android.R.id.content, fragment,tag);
transaction.addToBackStack(tag);
transaction.commit();

活动已设置此属性

android:windowSoftInputMode="adjustResize"

在我看来,我在底部有一个按钮,我想要保持在键盘顶部。这就是我的片段布局文件的样子

<RelativeLayout xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

    <ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:fillViewport="true"
    android:isScrollContainer="true">

         <LinearLayout..../>

    </ScrollView>

    <Button
    android:id="@+id/activate_button"
  style="@android:style/Widget.DeviceDefault.Light.Button.Borderless.Small"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true" />

 </RelativeLayout>

我在此视图中有一个EditText,当我请求焦点时,软键盘出现,但视图不滚动。

任何人都可以告诉我为什么键盘启动时视图没有调整大小?

答案

试试这个,改变父亲RelativeLayout`

android:layout_height =“wrap_content”进入android:layout_height =“match_parent”

<RelativeLayout xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent" >


    <Button
        android:id="@+id/activate_button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="10dp"/>

</RelativeLayout>
另一答案

我找到了两个对我有用的解决方案

把它放在片段的onCreate中:

getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE|WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

要么

在Activity中使用ScrollView作为FrameLayout的父级,如下所示:

<ScrollView>
    <FrameLayout/>
</ScrollView>

以上是关于键盘启动时,Android Fragment视图不会滚动的主要内容,如果未能解决你的问题,请参考以下文章

Android 键盘调整大小

Android - 当键盘为 android 5.0 (棒棒糖) 启动时调整滚动视图

来自相机的 Android 丢失片段视图

不希望软键盘在启动时自动显示-Android [重复]

Android——软键盘操作+fragment之间传递参数

Android Fragment,视图未删除