gpt4 book ai didi

android - SearchView 上的边距太多

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:51:01 26 4
gpt4 key购买 nike

我的 SearchView 显示如下:

enter image description here

如您所见,SearchView 的 search_edit_frame 和 SearchView 本身之外都有一个边距。

enter image description here

这是从哪里来的?检查布局会发现 search_edit_frame 左侧有 24 像素的边距,但其他地方没有边距。

如何删除这个多余的空间?

菜单.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/appbar_menu_search"
android:icon="@drawable/ic_search"
android:title="@string/search_search"
app:showAsAction="always"
app:actionViewClass="android.support.v7.widget.SearchView" />
</menu>

布局:

<RelativeLayout

android:id="@+id/root_layout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">


<android.support.design.widget.AppBarLayout
android:id="@+id/profile_appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/topbar_gradient"
android:theme="@style/AppTheme.Dark"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent">

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/topbar_gradient"
android:fitsSystemWindows="true"
android:minHeight="?android:attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways">

</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>

(...)
</RelativeLayout>

我设法通过应用@Jimmy 的回答来减少间距:

enter image description here

但是“后退”图像按钮和 SearchView 之间仍然存在很大差距。

最佳答案

search_edit_framesearchview 布局中的LinearLayout。默认情况下,它的开始和结束边距为 8dip。

相关代码来自source

 <LinearLayout
android:id="@+id/search_edit_frame"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_marginStart="8dip"
android:layout_marginEnd="8dip"
android:orientation="horizontal"
android:layoutDirection="locale">

您的问题可能是因为它的起始 margin 。您可以从搜索 View 中获取此线性布局并设置布局参数以减少 Activity 中的间隙(可能在 onCreateOptionsMenu 或您正在膨胀此searchview 的类似位置)。

像这样,假设 searchView 是您的 SearchView 实例,

        LinearLayout searchFrameLL=(LinearLayout)searchView.findViewById(R.id.search_edit_frame);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT);
params.setMargins(0,0,8,0); //params.setMargins(left, top, right, bottom)
// params.setMarginStart(0); //(or just use individual like this
searchFrameLL.setLayoutParams(params);

以类似的方式,您可以更新该 xml 中的其他属性以满足您的需要。

关于android - SearchView 上的边距太多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50531177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com