Android:添加可绘制选项卡选择器时,我收到了不需要的 apx。我的选项卡上的 5px 内边距

发布于 2024-09-18 06:20:42 字数 1299 浏览 7 评论 0原文

好的,下面的代码用于向我的选项卡添加自定义外观(效果很好),但我在可绘制图像周围得到了边框(填充或我认为的某种裁剪)。我该如何以及在哪里解决这个问题?

活动:

 TabHost mTabHost = getTabHost();
 Drawable mySelector = getResources().getDrawable(R.drawable.tabselector);
 mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator("TAB 1" , mySelector).setContent(R.id.textview1));

部分选项卡选择器 XML:

<selector
    android:id="@+id/myselector"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Non focused states -->
    <item
        android:state_focused="false"
        android:state_selected="false"
        android:state_pressed="false"
        android:drawable="@drawable/darklogo"/>
    <item
        android:state_focused="false"
        android:state_selected="true"
        android:state_pressed="false"
        android:drawable="@drawable/lightlogo" />

主要 XML:

<TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:padding="0px"
            android:layout_marginBottom ="-4px"
            android:clipToPadding="false" />

不允许我发布屏幕截图...

Okay so with my code below for adding custom look to my tabs (works great), yet I am getting a border (padding or some sort of crop I assume) around my drawable image. How and where do I remedy this?

Activity:

 TabHost mTabHost = getTabHost();
 Drawable mySelector = getResources().getDrawable(R.drawable.tabselector);
 mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator("TAB 1" , mySelector).setContent(R.id.textview1));

partial tabselecter XML:

<selector
    android:id="@+id/myselector"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Non focused states -->
    <item
        android:state_focused="false"
        android:state_selected="false"
        android:state_pressed="false"
        android:drawable="@drawable/darklogo"/>
    <item
        android:state_focused="false"
        android:state_selected="true"
        android:state_pressed="false"
        android:drawable="@drawable/lightlogo" />

Main XML:

<TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:padding="0px"
            android:layout_marginBottom ="-4px"
            android:clipToPadding="false" />

Wouldnt let me post a screenshot...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(1

沙沙粒小 2024-09-25 06:20:42

如果我猜对了,这实际上很容易。

您只需在 selector 元素中将 variablePadding 属性设置为 true 即可。

它应该是这样的。

<selector
android:id="@+id/myselector"
android:variablePadding="true"
xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Non focused states -->
<item
    android:state_focused="false"
    android:state_selected="false"
    android:state_pressed="false"
    android:drawable="@drawable/darklogo"/>
<item
    android:state_focused="false"
    android:state_selected="true"
    android:state_pressed="false"
    android:drawable="@drawable/lightlogo" />

注意第三行。

It is actually quite easy if I got you right.

You just have to set the variablePadding attribute to true in your selector element.

Here is how it should look like.

<selector
android:id="@+id/myselector"
android:variablePadding="true"
xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Non focused states -->
<item
    android:state_focused="false"
    android:state_selected="false"
    android:state_pressed="false"
    android:drawable="@drawable/darklogo"/>
<item
    android:state_focused="false"
    android:state_selected="true"
    android:state_pressed="false"
    android:drawable="@drawable/lightlogo" />

Note line three.

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