如何删除 Android 左侧的 SearchView space?
How to remove the Android SearchView left space?
我试图在 Android 的搜索视图之前删除左边的 space,但没有成功。我尝试了在 Internet 上找到的所有答案,但没有用。
为此,我正在使用 AppCompat 主题 activity。我的目标是 KitKat api (19).
有人可以帮助我吗?
编辑
布局 activity
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/MainLayout"
android:background="#6ED19E">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/BackgroundLayout"
android:background="#6ED19E">
<ImageView
android:src="@drawable/bgpattern"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/PatternImageView"
android:scaleType="centerCrop" />
<TextView
android:text="Já estamos em muitas cidades\nEstamos na sua?"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/ManyCityLabel"
android:textColor="#ffffff"
android:textSize="25dp"
android:width="20dp"
android:gravity="center"
android:textStyle="normal" />
</RelativeLayout>
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/LocationsListView"
android:background="#ffffff"
android:visibility="invisible" />
菜单
<?xml version="1.0" encoding="utf-8" ?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<item android:id="@+id/LocationSearch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:showAsAction="always"
tools:actionViewClass="android.support.v7.widget.SearchView"/>
</menu>
我以编程方式进行的图标化操作因为当我更改 xml 时不起作用
编辑
如果我设置 SearchView
的背景颜色
搜索不适合整个 space。
为什么?
在 activity 布局中制作自定义搜索栏,并根据您的需要设置其高度和宽度
<?xml version="1.0" encoding="utf-8" ?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/FullWidthSearchBar"
android:background="#DD2277"
android:orientation="horizontal">
<item android:id="@+id/LocationSearch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:showAsAction="always"
tools:actionViewClass="android.support.v7.widget.SearchView"/>
<view android:layout_width="100dp"
android:layout_height="wrap_content"/>
</LinearLayout>
</menu>
- Get a reference/handle to the SearchView
- Then a ref to the Title's view with getChildAt (need to experiment, start at 0)
- Set TextView's visibility to gone.
View sv = findViewById(R.Id.SearchView);
View tv = sv.getChildAt(n);
tv.setVisibility(GONE);
您可以执行以下操作:
像这样在 onCreate()
中隐藏应用栏:
// Hide UI first
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.hide();
}
在布局文件中将背景设置为绿色(或您的颜色),添加 SearchView
并将 SearchView
的背景设置为白色,如下所示:
<android.support.constraint.ConstraintLayout
...
android:background="#00FF00"
...>
<android.support.v7.widget.SearchView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFF" />
...
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
....
</android.support.constraint.ConstraintLayout>
我很确定您的其他搜索界面代码应该可以工作。您只需要重定向您的事件调用。
我试图在 Android 的搜索视图之前删除左边的 space,但没有成功。我尝试了在 Internet 上找到的所有答案,但没有用。 为此,我正在使用 AppCompat 主题 activity。我的目标是 KitKat api (19).
有人可以帮助我吗?
编辑
布局 activity
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/MainLayout"
android:background="#6ED19E">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/BackgroundLayout"
android:background="#6ED19E">
<ImageView
android:src="@drawable/bgpattern"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/PatternImageView"
android:scaleType="centerCrop" />
<TextView
android:text="Já estamos em muitas cidades\nEstamos na sua?"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/ManyCityLabel"
android:textColor="#ffffff"
android:textSize="25dp"
android:width="20dp"
android:gravity="center"
android:textStyle="normal" />
</RelativeLayout>
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/LocationsListView"
android:background="#ffffff"
android:visibility="invisible" />
菜单
<?xml version="1.0" encoding="utf-8" ?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<item android:id="@+id/LocationSearch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:showAsAction="always"
tools:actionViewClass="android.support.v7.widget.SearchView"/>
</menu>
我以编程方式进行的图标化操作因为当我更改 xml 时不起作用
编辑 如果我设置 SearchView
的背景颜色搜索不适合整个 space。 为什么?
在 activity 布局中制作自定义搜索栏,并根据您的需要设置其高度和宽度
<?xml version="1.0" encoding="utf-8" ?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/FullWidthSearchBar"
android:background="#DD2277"
android:orientation="horizontal">
<item android:id="@+id/LocationSearch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:showAsAction="always"
tools:actionViewClass="android.support.v7.widget.SearchView"/>
<view android:layout_width="100dp"
android:layout_height="wrap_content"/>
</LinearLayout>
</menu>
- Get a reference/handle to the SearchView
- Then a ref to the Title's view with getChildAt (need to experiment, start at 0)
- Set TextView's visibility to gone.
View sv = findViewById(R.Id.SearchView);
View tv = sv.getChildAt(n);
tv.setVisibility(GONE);
您可以执行以下操作:
像这样在 onCreate()
中隐藏应用栏:
// Hide UI first
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.hide();
}
在布局文件中将背景设置为绿色(或您的颜色),添加 SearchView
并将 SearchView
的背景设置为白色,如下所示:
<android.support.constraint.ConstraintLayout
...
android:background="#00FF00"
...>
<android.support.v7.widget.SearchView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFF" />
...
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
....
</android.support.constraint.ConstraintLayout>
我很确定您的其他搜索界面代码应该可以工作。您只需要重定向您的事件调用。