移除SearchView搜索语音按钮下划线

5
感谢其他SO相关帖子提供的有关SearchView自定义的信息,我能够将我的SearchView自定义到这个程度:

enter image description here

现在我正在尝试添加语音搜索,并且我已经成功更改了语音按钮的背景资源:

int searchVoiceIconId = searchPlate.getContext().getResources().getIdentifier("android:id/search_voice_btn", null, null);
ImageView searchVoiceIcon = (ImageView) searchView.findViewById(searchVoiceIconId);
searchVoiceIcon.setImageResource(R.drawable.ic_action_mic);
searchVoiceIcon.setBackgroundColor(Color.TRANSPARENT);

然而,我似乎无法去掉语音搜索按钮下面的线条。 输入图像描述 有什么建议吗?
谢谢。
3个回答

4
这是一个较晚的回复,但可能对将来有所帮助。
请添加以下内容:
<style name="AppTheme.SearchView" parent="Widget.AppCompat.SearchView">
    <!-- Gets rid of the "underline" in the mic button-->
    <item name="submitBackground">@null</item>

将以下内容添加到您的values/styles.xml文件中,即可移除该行。

0

代码:

((LinearLayout)search.findViewById(R.id.search_voice_btn).getParent()).setBackgroundColor(Color.TRANSPARENT);

我遇到了一个异常:04-27 10:13:15.740: E/AndroidRuntime(16189): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.ViewParent android.view.View.getParent()' on a null object reference - Guy S

0
int submitAreaId = searchView.getContext().getResources()
                .getIdentifier("android:id/submit_area", null, null);
View submitAreaView = searchView.findViewById(submitAreaId);
if (submitAreaView != null) {
    submitAreaView.setBackgroundColor(Color.parseColor("#00000000"));
}

这应该可以去掉非文本输入区域下划线。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接