相关疑难解决方法(0)

键盘隐藏BottomSheetDialogFragment

键盘下方还有更多字段.这发生在我更新支持库时.我知道它是Kotlin但它看起来几乎和java一样.我该如何解决这个问题?

这就是它的样子:

在此输入图像描述

我的代码:

class ProjectsEditBottomSheetFragment(val privateID: String,
                                  val publicID: String) : BottomSheetDialogFragment() {



private val mBottomSheetBehaviorCallback = object : BottomSheetBehavior.BottomSheetCallback() {
    override fun onStateChanged(bottomSheet: View, newState: Int) {
        if (newState == BottomSheetBehavior.STATE_HIDDEN) {
            dismiss()
        }

    }


    override fun onSlide(bottomSheet: View, slideOffset: Float) {
        if (slideOffset < -0.15f) {
            dismiss()
        }
    }
}


override fun setupDialog(dialog: Dialog, style: Int) {
    super.setupDialog(dialog, style)
    val view = View.inflate(context, R.layout.projects_edit_sheet, null)
    dialog.setContentView(view)

    dialog.window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)


    val params = (view.parent as View).layoutParams as CoordinatorLayout.LayoutParams
    val behavior = …
Run Code Online (Sandbox Code Playgroud)

android android-softkeyboard android-fragments kotlin bottom-sheet

16
推荐指数
2
解决办法
6309
查看次数

Android - 在键盘上方显示BottomSheetDialogFragment

我正在尝试显示一个BottomSheetDialogFragment带有几个EditText字段供用户输入信息.我想直接在键盘上方显示它,但它会不断覆盖内容.

这就是当我提出时BottomSheetDialogFragment,你可以看到它正在选择Card Number EditText,但覆盖其他内容.

BottomSheetDialogFragment覆盖内容

理想情况下,这就是我正在寻找的,你可以看到它们EditTexts和视图的填充.

BottomSheetDialogFragment没有掩盖内容

我已经尝试了很多解决方案windowSoftInputMode,但似乎没有任何效果.我已将其设置adjustResize为父级Activity和实际的BottomSheetDialogFragment通道

dialog.window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)

我也试着改变我的布局,从改变它FrameLayout,到ScrollView一个CoordinatorLayout,看看是否能对布局的地位产生任何影响,但似乎没有任何工作.

如果有人知道如何做到这一点,那将非常感谢,谢谢.

android android-softkeyboard bottom-sheet

12
推荐指数
2
解决办法
2274
查看次数

BottomSheetDialogFragment在横向模式下不显示完整高度

我在我的活动中使用BottomSheetDialogFragment,对话框在纵向模式下显示全高,但在切换到横向模式时不显示.

肖像模式

景观模式

MainActivity.java

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        CustomBottomSheetDialog customBottomSheetDialog = new CustomBottomSheetDialog();
        customBottomSheetDialog.show(getSupportFragmentManager(),customBottomSheetDialog.getTag());
    }
}
Run Code Online (Sandbox Code Playgroud)

CustomBottomSheetDialog

public class CustomBottomSheetDialog extends BottomSheetDialogFragment {

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return View.inflate(getContext(), R.layout.view_config, null);
    }
}
Run Code Online (Sandbox Code Playgroud)

CustomBottomSheetDialog布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:background="#fdf107"
              android:layout_height="wrap_content">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="196dp"
        android:gravity="center"
        android:textColor="@color/colorAccent"
        android:text="BottomSheetDialogFragment"/>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

在横向模式下,我必须拖动BottomSheetDialogFragment才能看到整个内容.

android

10
推荐指数
5
解决办法
6951
查看次数

如何使用最新的 WindowInset API 在出现软键盘时调整对话框布局

题:

如何使用最新的 WindowInset API来调整我的对话框和软键盘之间的空间?


我有一个带有一些 EditText 的 BottomSheetDialog。默认动画将在我的 EditText 正下方显示软键盘,它将覆盖我的保存按钮。在做了一些研究之后,我将这一行添加到了我的BottomSheetDialog片段中

getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
Run Code Online (Sandbox Code Playgroud)

它起作用了(如下图所示)!

这就是我想要的

但显然SOFT_INPUT_ADJUST_RESIZE已被弃用。

   * @deprecated Call {@link Window#setDecorFitsSystemWindows(boolean)} with {@code false} and
   * install an {@link OnApplyWindowInsetsListener} on your root content view that fits insets
   * of type {@link Type#ime()}.
Run Code Online (Sandbox Code Playgroud)

而且我不知道如何使用 newOnApplyWindowInsetsListener来达到相同的效果。这是我当前的BottomSheetDialog片段:

public class BottomSheetDialog extends BottomSheetDialogFragment {

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

//      Adding this line works, but it's …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-softkeyboard windowinsets android-bottomsheetdialog

3
推荐指数
3
解决办法
3986
查看次数

当键盘出现时,底部对话框片段不会向上滚动

我有一个BottomSheetDialogFragment从另一个片段打开.

bottom_sheet_fragment.xml:

<LinearLayout>
<TabLayout/>
<ViewPager>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我有两个视图寻呼机片段,每个片段包含一个EditText和一个RecyclerView垂直方式.

view_pager_fragment1.xml:

<LinearLayout>
    <EditText/>
    <RecyclerView>
    </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

现在,当我点击编辑文本时,回收站视图的一部分隐藏在键盘后面.

预期: 当键盘出现时,底部表格应向上滚动,以便回收者视图内容保持可见.

android-layout android-softkeyboard android-fragments bottom-sheet

1
推荐指数
1
解决办法
1855
查看次数