无法控制Android SearchView焦点

时间:2018-04-13 12:53:28

标签: java android focus searchview

我的活动type我遇到的问题是

1-活动开始时我无法获得焦点。我使用props中的SearchView解决了这个问题。我认为这将是默认值,因为此活动中没有其他内容?这是解决问题的正确方法吗?

2-真正的问题是我正在使用zxing searchView.requestFocusFromTouch();,当我从扫描仪返回并且搜索正在进行时我想要隐藏onCreateOptionsMenu()

我使用此代码启动扫描程序并IntentIntegrator启动@+id/coordinator_layout

onActivityResult()

但是当我在AsyncTask内将 IntentIntegrator integrator = new IntentIntegrator(this); integrator.setCaptureActivity(BarcodeScannerActivity.class); integrator.initiateScan(); 可见性设置为GONE或INVISIBLE时,立即SearchView会获得焦点。仅在从条形码扫描程序活动返回并使用R.id.coordinator_layout中的以下代码运行AsyncTask后才会发生这种情况

AsyncTask

然后焦点转到onPreExecute()并弹出软键盘。为什么会这样?

以下是我使用的布局。

    CoordinatorLayout coordinatorLayout = activity.findViewById(R.id.coordinator_layout);
    coordinatorLayout.setVisibility(View.GONE);

我在SearchView非常标准的<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <include android:id="@+id/toolbar_main" layout="@layout/toolbar_main" android:layout_width="match_parent" android:layout_height="wrap_content" /> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/coordinator_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="?android:attr/actionBarSize"> <android.support.design.widget.AppBarLayout android:id="@+id/appbarLayout" android:layout_width="match_parent" android:layout_height="24dp" android:theme="@style/Theme.Design.Light" android:visibility="gone"> </android.support.design.widget.AppBarLayout> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"/> </android.support.design.widget.CoordinatorLayout> </RelativeLayout>

进行充气
onCreateOptionsMenu()

toolbar_main:

SearchView

更新

现在我在<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/search" android:title="@string/app_name" android:icon="@drawable/ic_search_tint_control_normal_24" android:showAsAction="always" android:actionViewClass="android.widget.SearchView" /> </menu> 中使用了这个问题来解决这个问题。我不知道为什么以及怎么做,但即使在此之后,我仍然可以通过触摸它来关注<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?android:attr/actionBarSize" android:elevation="4dp" /> </android.support.design.widget.AppBarLayout> </android.support.design.widget.CoordinatorLayout> ......奇怪......

onPreExecute()

0 个答案:

没有答案