如何向操作栏选项卡添加关闭按钮

时间:2014-10-08 16:00:50

标签: button tabs android-actionbar

我正在构建一个应用程序,它有一个最多有四个选项卡的操作栏。 我想在操作栏标签中添加一个像网络浏览器这样的关闭按钮。

我知道如何动态添加/删除标签。 我一直在寻找如何添加关闭按钮,但我找不到任何东西!

如果您知道解决方案或教程,请告诉我。 或者这是(在标签中添加关闭按钮)一个不好的做法?

谢谢,

我的环境: Android 4.4.2(api-level 19)

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。 我可以使用ActionBar.Tab #setCustomView方法解决我的问题。 它可以添加您对操作栏选项卡所做的视图。

我的代码是:

ActionBar actionBar = getSupportActionBar();

actionBar.addTab(actionBar
            .newTab()
            .setCustomView(R.layout.tab_title)
            .setTabListener(new MainTabListener<TabFragment>( this, "myTab", TabFragment.class
            )));

有关向操作栏添加标签的更多详细信息,请访问: http://developer.android.com/guide/topics/ui/actionbar.html#Tabs

例如,我的tab_title.xml是:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
android:id="@+id/title_tab"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:ellipsize="end"
android:gravity="center"
android:singleLine="true"
android:paddingStart="0dp"
android:paddingLeft="0dp"
android:paddingEnd="10dp"
android:paddingRight="10dp" />

<TextView
android:id="@+id/close_tab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_gravity="fill_vertical"
android:layout_toLeftOf="@+id/title_tab"
android:layout_toStartOf="@+id/title_tab"
android:gravity="center"
android:text="x"
android:textSize="10sp"
android:textStyle="bold"
android:paddingStart="10dp"
android:paddingLeft="10dp"
android:paddingEnd="0dp"
android:paddingRight="0dp" />

</RelativeLayout>

然后,在关闭按钮的TextView中添加单击侦听器,可以将关闭按钮设置为操作栏选项卡。

我希望这篇文章可以帮助别人。

注意: 如果启用设备轮换,请注意此问题: https://code.google.com/p/android/issues/detail?id=43213&can=1&q=screen%20rotate%20tab&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars