我希望搜索视图保持不变,当用户点击它时会展开。我还想要一个向右浮动的图标。
如果我使用相对布局,它将正常工作,直到搜索视图扩展。
如果我使用衬垫布局并给予它们重量,则图标将始终位于搜索视图的旁边。
我该怎么办?
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<SearchView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/searchView"
android:layout_weight="8"
></SearchView>
<ImageView
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_weight="2"
android:src="@drawable/setting"/>
</LinearLayout>
< RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<SearchView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/searchView"
android:layout_alignParentLeft="true"
></SearchView>
<ImageView
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_gravity="center"
android:layout_alignParentRight="true"
android:src="@drawable/setting"/>
</RelativeLayout>
答案 0 :(得分:2)
如果使用相对布局,您只需告诉搜索视图保持图标的左侧,并在父级中将设置图标对齐。这是一个有效的例子:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.example.myapplication.EllipsizeActivity">
<ImageView
android:id="@+id/iv_icon"
android:layout_alignParentRight="true"
android:src="@android:drawable/ic_btn_speak_now"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<SearchView
android:id="@+id/search_view"
android:layout_toLeftOf="@id/iv_icon"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</RelativeLayout>
以下是崩溃的内容:
并扩展: