在Android中更改SearchView backbutton
我有白色的操作栏,当我点击搜索视图按钮时,我可以得到搜索视图,但无法得到搜索视图下面的行,也无法看到后退按钮。我想更改“搜索视图后退”按钮的颜色/完整图标,并获取搜索视图下方的行。我在谷歌上搜索了一下,尝试了很多不同的方法,但都没有成功。我也尝试过更改工具栏样式,但没有成功。我也在活动和片段中使用搜索视图 我尝试过如下更改工具栏样式在Android中更改SearchView backbutton,android,button,searchview,Android,Button,Searchview,我有白色的操作栏,当我点击搜索视图按钮时,我可以得到搜索视图,但无法得到搜索视图下面的行,也无法看到后退按钮。我想更改“搜索视图后退”按钮的颜色/完整图标,并获取搜索视图下方的行。我在谷歌上搜索了一下,尝试了很多不同的方法,但都没有成功。我也尝试过更改工具栏样式,但没有成功。我也在活动和片段中使用搜索视图 我尝试过如下更改工具栏样式 <style name="ToolbarStyle" parent="@style/ThemeOverlay.AppCompat.ActionBar">
<style name="ToolbarStyle" parent="@style/ThemeOverlay.AppCompat.ActionBar">
<!-- Customize color of navigation drawer icon and back arrow -->
<item name="colorControlNormal">@color/colorBlack</item>
<item name="android:collapseIcon" tools:ignore="NewApi">@mipmap/filter_red</item>
</style>
@彩色/彩色黑色
@mipmap/过滤器\红色
任何帮助都将不胜感激
提前感谢(i)您可以在工具栏中包含app:collapseIcon
属性
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:elevation="2dp"
app:collapseIcon="@drawable/cancel"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
(ii)另一种方法是在AppBarLayout的帮助下以编程方式完成
AppBarLayout appBar = findViewById(R.id.appBarLayout);
appBar.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
for (int i = 0; i < toolbar.getChildCount(); i++) {
View view = toolbar.getChildAt(i);
if (view instanceof ImageButton) {
ImageButton btn = (ImageButton) view;
btn.setImageDrawable(getResources().getDrawable(R.drawable.cancel)); // Here we can change icon.
}
}
}
});
AppBarLayout-appBar=findviewbyd(R.id.AppBarLayout);
appBar.addOnOffsetChangedListener(新的AppBarLayout.OnOffsetChangedListener(){
@凌驾
公共无效onOffsetChanged(AppBarLayout AppBarLayout,int verticalOffset){
对于(int i=0;i
布局如下:
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:elevation="2dp"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
</android.support.design.widget.AppBarLayout>
(i)您可以在工具栏中包含app:collapseIcon
属性
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:elevation="2dp"
app:collapseIcon="@drawable/cancel"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
(ii)另一种方法是在AppBarLayout的帮助下以编程方式完成
AppBarLayout appBar = findViewById(R.id.appBarLayout);
appBar.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
for (int i = 0; i < toolbar.getChildCount(); i++) {
View view = toolbar.getChildAt(i);
if (view instanceof ImageButton) {
ImageButton btn = (ImageButton) view;
btn.setImageDrawable(getResources().getDrawable(R.drawable.cancel)); // Here we can change icon.
}
}
}
});
AppBarLayout-appBar=findviewbyd(R.id.AppBarLayout);
appBar.addOnOffsetChangedListener(新的AppBarLayout.OnOffsetChangedListener(){
@凌驾
公共无效onOffsetChanged(AppBarLayout AppBarLayout,int verticalOffset){
对于(int i=0;i
布局如下:
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:elevation="2dp"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
</android.support.design.widget.AppBarLayout>
“我……尝试了很多不同的方法”-你应该在问题中包括这些尝试,以及每个尝试失败的原因,这样就不会浪费时间在无法使用的建议上。完成。。。更新了代码…“我…尝试了很多不同的方法”-你应该在问题中包括这些尝试,并描述每个尝试是如何失败的,这样就不会浪费时间在无法使用的建议上。完成。。。更新了代码…感谢您的快速回复!!!!我需要在每个布局中包含工具栏吗????我需要让它全球化,有没有这样做的方法???是的。。您可以使用AppBarLayout以编程方式执行此操作。我现在会更新答案。你能发布你的代码吗,它对你有用。。我会比较你的代码和我的代码。。。请尝试发布您的xml和java代码最终我找到了答案,我刚刚在style.xml AppTheme@drawable/ic_back中添加了下面的代码。您能告诉我如何获得搜索视图的底线吗。您可以添加此行searchView.findViewById(android.support.v7.appcompat.R.id.search\u src\u text);获取底线。感谢您的快速回复!!!!我需要在每个布局中包含工具栏吗????我需要让它全球化,有没有这样做的方法???是的。。您可以使用AppBarLayout以编程方式执行此操作。我现在会更新答案。你能发布你的代码吗,它对你有用。。我会比较你的代码和我的代码。。。请尝试发布您的xml和java代码最终我找到了答案,我刚刚在style.xml AppTheme@drawable/ic_back中添加了下面的代码。您能告诉我如何获得搜索视图的底线吗。您可以添加此行searchView.findViewById(android.support.v7.appcompat.R.id.search\u src\u text);为了得到底线。