weixin_51705636 2023-08-22 10:54 采纳率: 50%
浏览 8

Android material design searchbar无法键入的问题


        <com.google.android.material.search.SearchBar
            android:layout_width="match_parent"
            android:layout_height="36dp"
            android:layout_gravity="center"
            android:visibility="visible"
            android:hint="sousou" />

在页面中使用了material库的SearchBar,只写了布局文件,没有写任何后台逻辑。但在模拟器上运行预览效果的时候,点击SearchBar没有弹出输入框,导致无法键入。

img

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-22 12:20
    关注

    【以下回答由 GPT 生成】

    这个问题可能是由于没有正确设置搜索栏的点击事件监听器所致。以下是解决该问题的步骤:

    首先,确保你的布局文件中已经正确引用了material库:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity">
    
        <com.google.android.material.appbar.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
    
            <com.google.android.material.appbar.MaterialToolbar
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:title="My App"
                app:navigationIcon="@drawable/ic_menu"
                app:menu="@menu/menu_main" />
    
            <com.google.android.material.appbar.MaterialToolbar
                android:id="@+id/searchBar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:menu="@menu/menu_search" />
        </com.google.android.material.appbar.AppBarLayout>
    
        ...
    
    </LinearLayout>
    

    接下来,在你的Activity的onCreate方法中,找到该SearchBar控件,并设置点击事件监听器:

    import android.os.Bundle;
    import androidx.appcompat.app.AppCompatActivity;
    import androidx.appcompat.widget.Toolbar;
    import androidx.appcompat.widget.SearchView;
    import android.view.View;
    
    public class MainActivity extends AppCompatActivity {
    
        private Toolbar searchBar;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            searchBar = findViewById(R.id.searchBar);
    
            // 设置SearchBar的点击事件监听器
            searchBar.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // 通过设置SearchBar的软键盘可见性来弹出输入框
                    searchBar.setFocusable(true);
                    searchBar.requestFocus();
                }
            });
        }
    
        ...
    }
    

    在上述代码中,我们通过设置SearchBar的点击事件监听器,当SearchBar被点击时,将搜索栏设置为可编辑状态(软键盘可见),从而实现弹出输入框的效果。

    请注意,这只是一个初步解决方案,如果你的代码中有其他操作可能导致点击事件无法触发或输入框无法弹出,需要进一步检查你的代码逻辑。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 8月22日

悬赏问题

  • ¥15 远程访问linux主机超时
  • ¥15 odoo17存货管理优势于中国国内该行业传统ERP或MES的详细解读和举例
  • ¥15 CPU卡指令整合指令数据都在图片上
  • ¥15 火车票关联12306问题
  • ¥15 odoo17处理受托加工产品
  • ¥15 如何用MATLAB编码图三的积分
  • ¥15 圆孔衍射光强随孔径变化
  • ¥15 MacBook pro m3max上用vscode运行c语言没有反应
  • ¥15 ESP-PROG配置错误,ALL ONES
  • ¥15 结构功能耦合指标计算