我想向SearchView小部件添加自定义按钮。
浏览search_view
布局文件的源代码后,我发现它的LinearLayout
(submit_area
)包含提交按钮和语音按钮。
因此,我向Submit_area添加了一个动态按钮。但是它没有显示我动态添加的按钮,因为如果未启用“提交”按钮或“语音”按钮,则该按钮不submit_area
可见。因此,如果我动态添加任何内容都没有关系。
SearchView searchView = (SearchView) menuItem.getActionView();
int
submit_areaId = searchView.getContext().getResources()
.getIdentifier("android:id/submit_area", null, null);
Button btnScan = new Button(getActivity());
btnScan.setText(getString(R.string.scan)); submitArea.addView(btnScan);
但是,如果我只是将“提交按钮”设置为启用,则它会显示“提交”按钮以及我的动态按钮,如附图所示。
我只想显示我的动态按钮。任何线索如何实现这一目标?
由于SearchView
正在设置私有类方法,submit_area
Visibility.Gone
因此我们无法对此做太多事情。
一个快速的肮脏技巧是设置默认按钮为启用状态,然后将其宽度和高度设置为0。设置Visibility
无效,因此必须设置高度/宽度。
我启用了搜索按钮,然后将其高度/宽度设置为零。
int submit_areaId = searchView.getContext().getResources().getIdentifier("android:id/submit_area", null, null);
ImageView submitImage = (ImageView) searchView.findViewById(search_go_btnId);
searchView.setSubmitButtonEnabled(true);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(0, 0);
submitImage.setLayoutParams(layoutParams);
现在,SearchView将显示您在Submit_area中添加的所有内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句