Android:忽略填充
我以前问过这个问题,但直到现在才知道确切的问题是什么。我的问题是,我制作了一个自定义旋转器/适配器,并将填充设置为 5dip,以便在旋转器的行中留出适当的间距。问题是当我添加填充时,我必须使微调器更大以补偿更多的填充。有没有办法可以忽略所选项目的填充。因此,当微调器折叠时,将忽略填充,而当其展开时,将使用填充。
微调器中行的 xml:
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dip">
<ImageView
android:layout_width="32sp"
android:src="@drawable/icon"
android:id="@+id/spinnerimage"
android:layout_height="32sp" />
<TextView
android:textSize="22sp"
android:textStyle="bold"
android:textColor="#000"
android:layout_width="fill_parent"
android:id="@+id/category"
android:layout_height="wrap_content"
android:paddingLeft="5sp" />
</TableRow>
</TableLayout>
和微调器:
<Spinner
android:id="@+id/catspinner"
android:layout_marginLeft="25dip"
android:layout_marginRight="25dip"
android:layout_width="fill_parent"
android:layout_centerHorizontal="true"
android:layout_height="wrap_content"
android:prompt="@string/prompt"
android:background="@drawable/yellow_btn"
android:layout_centerVertical="true"
android:drawSelectorOnTop="true" />
I've asked this question before but didn't know what the exact problem was until now. My problem is that I have made a custom spinner/adapter and I set the padding to 5dip in order to decent spacing in the rows of the spinner. The problem is when I add the padding the I have to make the spinner larger to compensate the more padding. Is there a way that I can ignore the padding for the selected item. So when the spinner is collapsed the padding is ignored and when it is expanded the padding is used.
The xml for the rows in the spinner:
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dip">
<ImageView
android:layout_width="32sp"
android:src="@drawable/icon"
android:id="@+id/spinnerimage"
android:layout_height="32sp" />
<TextView
android:textSize="22sp"
android:textStyle="bold"
android:textColor="#000"
android:layout_width="fill_parent"
android:id="@+id/category"
android:layout_height="wrap_content"
android:paddingLeft="5sp" />
</TableRow>
</TableLayout>
and the spinner:
<Spinner
android:id="@+id/catspinner"
android:layout_marginLeft="25dip"
android:layout_marginRight="25dip"
android:layout_width="fill_parent"
android:layout_centerHorizontal="true"
android:layout_height="wrap_content"
android:prompt="@string/prompt"
android:background="@drawable/yellow_btn"
android:layout_centerVertical="true"
android:drawSelectorOnTop="true" />
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您使用默认的可绘制对象,则无法按照您要求的方式更改填充。
您必须创建自己的 ninepatch 可绘制对象并将它们包含在您的应用程序中才能覆盖默认可绘制对象的行为。
If you are using the default drawables, you can't change the padding the way you're asking to.
You will have to create your own ninepatch drawables and include them in your app in order to override the behavior of the default drawables.