java - 当键盘出现时 Android 布局被换行

标签 java android fragmentstatepageradapter

在我的应用程序中,我有两个选项卡,我正在使用 ViewPager,两个 fragment 位于此 View 分页器中。有时,当我点击第一个选项卡 fragment 时,EditBox键盘会弹出,一旦我完成输入,键盘就会消失。但是键盘区域下方的布局变为空白(白色),有时会发生这种情况,特别是第二次启动应用程序。当应用程序第一次从工作室启动时,不会出现问题。但是当我通过系统应用程序通过点击其 ic_launhcher 启动它时,问题再次出现。问题的可能原因是什么?

启动时的布局如下所示:

enter image description here

单击编辑框并编辑地址字段中的一些文本后,当键盘消失时,布局如下所示:

enter image description here

我在另一个 fragment 中使用 View 分页器,并通过传递 getChildFragmentManager() 来使用 FragmentStatePagerAdapter

 private void setupViewPager(ViewPager viewPager) {
        FragmentStatePagerAdapter fragmentStatePagerAdapter = new FragmentStatePagerAdapter(getChildFragmentManager()) {
            @Override
            public Fragment getItem(int position) {
                Fragment fragment = null;
                switch (position) {
                    case 0:
                        fragment = new GeneralInfoFragment();
                        Bundle bundle = new Bundle();
                        bundle.putString(context.getString(R.string.all_data), new Gson().toJson(profileResponse));
                        fragment.setArguments(bundle);
                        break;
                    case 1:
                        fragment = new ICEFragment();
                        break;
                    default:
                        return null;
                }
                return fragment;
            }

            @Override
            public int getCount() {
                return 2;
            }

            @Override
            public CharSequence getPageTitle(int position) {
                switch (position) {
                    case 0:
                        return "General Info";
                    case 1:
                        return "ICE";
                }
                return "";
            }
        };

注意:为了保护隐私,图像已被删除

最佳答案

编辑:

将此代码放入 list 文件中的 Activity 标记中

android:configChanges="keyboard|keyboardHidden|orientation|
screenLayout|uiMode|screenSize|smallestScreenSize"

android:windowSoftInputMode="stateHidden|adjustPan"

或者

试试这个

setContentView(R.layout.activity_direction_3);
getWindow().getDecorView().setBackgroundColor(
        android.R.color.transparent);

或者

如果您正在使用自定义主题,请将其添加到您的主题中

 <item name="android:windowBackground">Transparent color </item>

如果您仍然遇到问题,请告诉我。

关于java - 当键盘出现时 Android 布局被换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38869467/

相关文章:

java - 是否可以将 Spring Data Couchbase 与外部文档(来自依赖项)映射?

Android FragmentStatePagerAdapter - 缺少 View

java - 当用户到达 ViewPager 的末尾时,如何动态地将 fragment 添加到 ViewPager 的开头?

android - 使用 FragmentStatePagerAdapter 刷新 fragment View

java - componentListener 被禁用

java - 处理用户操作的表单数据的正确方法是什么?

java - 每次创建android项目时都会出现错误

android - 如何定义用于 GPS 噪声去除的高斯滤波器

android - 我如何访问剪贴板

android - Oreo BroadcastReceiver SMS Received 不工作