如何在具有可绘制背景的搜索视图上删除下划线
Posted
技术标签:
【中文标题】如何在具有可绘制背景的搜索视图上删除下划线【英文标题】:How to remove underline on searchview with drawable background 【发布时间】:2020-07-24 11:13:20 【问题描述】:Snapshot from emulator
我怎样才能去掉如图所示的下划线? 将其设置为透明或更改背景无济于事。
已经尝试过这些解决方案:How to remove white underline in a SearchView widget in Toolbar android
将样式更改为 actionbar-searchview 和以编程方式。更改查询背景的问题是它会忽略我已经设置的可绘制背景。
<SearchView
android:id="@+id/searchViewBar"
android:layout_
android:layout_
android:background="@drawable/rounded_corner"
android:focusable="true"
android:queryHint=" "
/>
【问题讨论】:
这好像是抬高,你试过吗? 没有使用任何海拔。添加了一些来测试和查看差异,它与行明显不同。 如果你想让搜索的字符变成彩色的,请看我的问答:***.com/questions/59628149/… 你能把结果的图片发张吗? 【参考方案1】:您需要更改声明此视图的 search_edit_frame、search_plate 和 search_bar。
int searchFrameId = searchView.getContext().getResources().getIdentifier("android:id/search_edit_frame", null, null);
View searchFrame = searchView.findViewById(searchFrameId);
searchFrame.setBackgroundResource(R.drawable.rounded_corner);
int searchPlateId = searchView.getContext().getResources().getIdentifier("android:id/search_plate", null, null);
View searchPlate = findViewById(searchPlateId);
searchPlate.setBackgroundResource(R.drawable.rounded_corner);
int searchBarId = searchView.getContext().getResources().getIdentifier("android:id/search_bar", null, null);
View searchBar = findViewById(searchBarId);
searchBar.setBackgroundResource(R.drawable.rounded_corner);
【讨论】:
我只需要 searchPlate 的行!谢谢。没有办法在 XML 中做到这一点?【参考方案2】:试试下面的代码:
View v = searchView.findViewById(android.support.v7.appcompat.R.id.search_plate);
v.setBackgroundColor(Color.parseColor("here give actionbar color code"));
【讨论】:
【参考方案3】:int searchPlateId = searchView.getContext().getResources().getIdentifier("android:id/search_plate", null, null);
View searchPlate = findViewById(searchPlateId);
searchPlate.setBackgroundResource(0);
这会从搜索板中删除任何类型的背景。
【讨论】:
以上是关于如何在具有可绘制背景的搜索视图上删除下划线的主要内容,如果未能解决你的问题,请参考以下文章