我正在尝试复制一个微调控制器(请不要问为什么)我正在与分频器挣扎。假的微调器看起来很好,直到我将分隔符添加到imageview的左侧。一旦我添加了分隔符,它的高度就会填满屏幕的剩余部分。有人可以解释一下吗?
以下xml:
.......
<Spinner
android:id="@+id/equipment_spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"/>
<ImageView
android:id="@+id/spinner_arrow"
android:layout_width="45sp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:src="@drawable/spinner_arrow"/>
</RelativeLayout>
</LinearLayout>
</ScrollView>
生成以下屏幕:
一旦我添加了分隔符,xml就像这样:
<Spinner
android:id="@+id/equipment_spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"/>
<ImageView
android:id="@+id/spinner_arrow"
android:layout_width="45sp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:src="@drawable/spinner_arrow"/>
<View
android:background="#e7ebe7"
android:layout_width="1dip"
android:layout_height="fill_parent"
android:layout_toLeftOf="@id/spinner_arrow"/>
</RelativeLayout>
</LinearLayout>
</ScrollView>
生成以下屏幕:
谁能发现我在这里做错了什么?...
答案 0 :(得分:2)
您应该使用九个补丁图像而不是使用多个视图。这就是默认的Spinner所做的。我不知道你为什么要创建一个新的微调器,但如果你保持视觉效果相同,你可以重复使用内置图像。
android.R.layout.simple_spinner_item
是您可以重复使用的TextView布局。或者,您可以直接获取背景:android.R.drawable.btn_dropdown
,这是一个XML选择器,可以为每个状态绘制位图。 Android源代码中提供了更多详细信息。
答案 1 :(得分:1)
您将高度设置为填充父级,填充相对布局的其余部分。您是否尝试过将按钮放在按钮或imageview中,如下所示:
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true">
<View
android:background="#e7ebe7"
android:layout_width="1dip"
android:layout_height="fill_parent"
android:layout_toLeftOf="@id/spinner_arrow"/>
</Button>
<ImageView
android:id="@+id/spinner_arrow"
android:layout_width="45sp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:src="@drawable/spinner_arrow"/>
</RelativeLayout>
或强> 的
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"/>
<ImageView
android:id="@+id/spinner_arrow"
android:layout_width="45sp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:src="@drawable/spinner_arrow">
<View
android:background="#e7ebe7"
android:layout_width="1dip"
android:layout_height="fill_parent"
android:layout_toLeftOf="@id/spinner_arrow"/>
</ImageView>
</RelativeLayout>
如果这不起作用,请尝试将相对布局的高度设置为固定量,例如10 dip或者旋转器的大小......您可能必须尝试不同大小的fiew,只是不要将relativelayout作为换行内容< / p>