键盘下方还有更多字段.这发生在我更新支持库时.我知道它是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
我正在尝试显示一个BottomSheetDialogFragment带有几个EditText字段供用户输入信息.我想直接在键盘上方显示它,但它会不断覆盖内容.
这就是当我提出时BottomSheetDialogFragment,你可以看到它正在选择Card Number EditText,但覆盖其他内容.
理想情况下,这就是我正在寻找的,你可以看到它们EditTexts和视图的填充.
我已经尝试了很多解决方案windowSoftInputMode,但似乎没有任何效果.我已将其设置adjustResize为父级Activity和实际的BottomSheetDialogFragment通道
dialog.window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)
我也试着改变我的布局,从改变它FrameLayout,到ScrollView一个CoordinatorLayout,看看是否能对布局的地位产生任何影响,但似乎没有任何工作.
如果有人知道如何做到这一点,那将非常感谢,谢谢.
我在我的活动中使用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才能看到整个内容.
如何使用最新的 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
我有一个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