2013-04-16 56 views
6

我想为类似标签的浏览器创建自定义tabhost。我对如何将它应用于像Chrome浏览器选项卡中的布局一样感到困惑,就像在图像中一样。在Chrome浏览器中为Android创建自定义tabhost

enter image description here

这是我都试过了。我想知道如何在图像中创建具有斜率的边缘。

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上找到引用

+3

你不能将它们创建为一个xml drawable,九个补丁更合适。 – Luksprog

+0

@Luksprog我希望通过编程方式使用PathShape来完成它。这是可能的吗? – intrepidkarthi

+0

@intrepidkarthi你有没有发现任何解决方案 – UnderGround

回答

0

这是工作的罚款与二九片图像。一个用于活动标签,一个用于非活动标签。

+0

但是,你是如何添加单独的监听器来删除选项卡上的图标? –

+0

@AkhileshSk使用我使用的标签ID – intrepidkarthi

1

将页面放在FrameLayout中,并且还包含一个哈希映射(以及它们的特定名称)。那么你可以这样

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"); 

注意更改标签:必须将F1作为活动的内容查看或将其添加另外的看法,将其设置为内容查看

+0

感谢您的回答。我也需要这个解决方案。但我的问题主要是关于制表符的设计。 – intrepidkarthi

+0

要创建这样的标签,你必须创建自己的标签栏和标签按钮。因为你可以看到其他活动标签。你可以做到这一点把你的按钮在相对布局和改变他们的Z指数(我不知道这在Android的名称,所以我使用z-index在HTML中,但我知道它存在,搜索它) – bmavus

+0

好吧。目前我正在尝试九个补丁图像。我会尽快更新结果。 – intrepidkarthi

相关问题