我有一个复杂的自定义视图,与pinterest
搜索框非常相似。此组件只在EditText
中显示Button
和多个LinearLayout
。
当组件处于任何Fragment
布局时,该组件可以使用相同的布局文件。这意味着当用户点击它时,soft-keyboard
会显示EditText
并正常工作
但是,当我尝试将此组件添加到我的自定义actionbar
时,它不起作用。这意味着,单击它不会显示soft-keyboard
。
我认为这是一个焦点问题,但我尝试调试并正常调用EditText
onTouch方法。我还尝试使用descendantFocusability
参数,但没有任何结果。
这是我的自定义ActionBar
初始化
public void initializeCustomActionBar() {
android.support.v7.app.ActionBar mActionBar = ((ActionBarActivity) getActivity()).getSupportActionBar();
mActionBar.setDisplayShowHomeEnabled(true);
mActionBar.setDisplayShowTitleEnabled(false);
LayoutInflater mInflater = LayoutInflater.from(getActivity());
View customView = mInflater.inflate(R.layout.actionbar_layout, null);
mActionBar.setDisplayShowCustomEnabled(true);
mActionBar.setCustomView(customView);
}
这是我的自定义ActionBar
布局xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.my.package.customSearch
android:id="@+id/pdt_actionbar_searchbox"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp" />
我正在以编程方式构建此自定义布局而不使用XML文件。出于某些原因,我将无法发布我的代码来构建此布局,但我绘制的图像在深层细节中解释了ActionBar
布局的层次结构。
注意:我正在使用NavigationDrawer
左侧菜单。我认为它的左侧菜单Button
和我的EditText
答案 0 :(得分:0)
在活动类在清单文件中声明的编辑文本活动中,你需要在下面添加这行代码,如图所示
内部活动android:windowSoftInputMode =&#34; stateAlwaysVisible&#34;
答案 1 :(得分:0)
您可以尝试将此行添加到操作栏按钮侦听器
your_view.getWindow()。setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
答案 2 :(得分:0)
您可以在设置自定义搜索视图后调用以下代码。 searchView应初始化为android.widget.searchview。
searchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
}
}
searchView.requestFocus();
对于EditText,使用setOnFocusChangeListener或android:windowSoftInputMode =&#34; stateAlwaysVisible&#34;