6

我想为标签之类的浏览器创建自定义标签主机。我很困惑如何将它应用于图像中的 chrome 浏览器选项卡中的布局。

在此处输入图像描述

这是我尝试过的。我想知道如何用图像中的斜率创建边缘。

tab_selected.xml

<item>
    <shape android:shape="rectangle" >
        <solid android:color="#DCDCDC" />

        <corners
            android:topLeftRadius="5dp"
            android:topRightRadius="5dp" />
    </shape>
</item>
<item
    android:bottom="2dp"
    android:left="1dp"
    android:right="1dp"
    android:top="1dp">
    <shape android:shape="rectangle" >
        <solid android:color="#DCDCDC" />
        <corners
            android:topLeftRadius="10dp"
            android:topRightRadius="10dp" />
    </shape>
</item>

tab_unselected.xml

<item android:top="10dp">
    <shape android:shape="rectangle" >
        <solid android:color="#AAAAAA" />
    </shape>
</item>
<item android:bottom="2dp">
    <shape android:shape="rectangle" >
        <solid android:color="#AAAAAA" />

        <corners
            android:topLeftRadius="10dp"
            android:topRightRadius="10dp" />

    </shape>
</item>

我希望可以使用 XML 中的 Pathshape 来完成。谁能指出我的参考?在 PathShape 上找不到参考

4

2 回答 2

1

将您的页面放在 FrameLayout 和 hashmap 中(带有它们的特定名称)。然后你可以像这样改变标签

  FrameLayout fl =new FrameLayout(context);
  HashMap<String,LinearLayout> tabs =new HashMap<String,LinearLayout>(); 

  LinearLayout tab =new LinearLayout(context);
  fl.addView(tab);
  tabs.put("home",tab);

  tab =new LinearLayout(context);
  fl.addView(tab);
  tabs.put("events",tab);



private void changeTab(String tabKey) {
    for (java.util.Map.Entry<String, LinearLayout> e : tabs.entrySet()) {
        if (e.getKey().compareTo(key) == 0) {
            e.getValue().setVisibility(View.VISIBLE);
        } else {
            e.getValue().setVisibility(View.INVISIBLE);
        }
    }
 }


 use this to change tab:

  changeTab("home");

注意:您必须将 fl 设置为活动的内容视图或将其添加到另一个视图并将其设置为内容视图

于 2013-05-02T00:45:47.920 回答
0

它适用于两个九个补丁图像。一个用于活动选项卡,一个用于非活动选项卡。

于 2013-07-15T12:53:49.803 回答