在BottomSheetFragment中当我单击EditText字段然后在android Java中显示禁用的软键盘

问题描述 投票:0回答:1

我提到我的底部工作表编辑文本代码和图像请帮助我!我不明白我的代码出了什么问题!

软键盘不工作,但可见黑色光阴影

我的 XML 文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".view.dashboard.home.FullPageBottomSheetFragment">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:gravity="center_vertical"
        android:orientation="horizontal">
        <EditText
            android:id="@+id/textSearch"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/black_border"
            android:gravity="top|start"
            android:focusable="true"
            android:hint="@string/search_friends"
            android:inputType="textMultiLine"
            android:lines="1"
            android:padding="10dp"
            android:scrollbars="vertical"
            android:textColor="@android:color/black"
            android:textSize="14sp" />
        <ImageView
            android:layout_width="35dp"
            android:layout_height="35dp"
            android:layout_marginStart="10dp"
            android:src="@drawable/search_icon"/>
    </LinearLayout>

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recyclerViewFriends"
        android:layout_width="match_parent"
        android:layout_height="700dp" />

</LinearLayout>

我的片段代码

public class FullPageBottomSheetFragment extends BottomSheetDialogFragment/* implements TextWatcher*/ {
    private FragmentFullPageBottomSheetBinding binding;
    private RecyclerView recyclerViewFriends; // Add this line 

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        binding = FragmentFullPageBottomSheetBinding.inflate(inflater, container, false);
        

        // Request focus to the EditText to show the soft keypad
        binding.textSearch.setFocusableInTouchMode(true);
        binding.textSearch.requestFocus();
//        binding.textSearch.addTextChangedListener(this);

        return binding.getRoot();
    }
}

enter image description here

我第一次在我的职业中看到这种类型的错误,请帮助我修复我的代码。

java android kotlin android-studio
1个回答
0
投票

听起来这个问题可能与 BottomSheet 中的 EditText 如何与软键盘交互有关。确保您的 BottomSheetDialogFragment 正确处理焦点,并尝试将以下内容添加到布局 XML 中的 EditText:

android:focusableInTouchMode="true"
android:focusable="true"

此外,检查您是否正在调整窗口设置:

getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

这应该可以解决键盘无法正常工作的问题。

© www.soinside.com 2019 - 2024. All rights reserved.