Android:忽略填充

发布于 2024-11-29 03:58:17 字数 1526 浏览 1 评论 0原文

我以前问过这个问题,但直到现在才知道确切的问题是什么。我的问题是,我制作了一个自定义旋转器/适配器,并将填充设置为 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

酷遇一生 2024-12-06 03:58:17

如果您使用默认的可绘制对象,则无法按照您要求的方式更改填充。

您必须创建自己的 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文