如何在android中的actionbar文本顶部添加图标

时间:2012-08-16 07:06:22

标签: android

我是android的新手。我正在尝试实现一个有三个标签的操作栏,每个标签包含一个图标和标签名称。我成功地在每个标签上放置图标和文字,但遗憾的是图标在左边选项卡中文本的一侧(选项卡的名称)。我希望文本顶部的地方图标而不是左侧。请找到我的代码片段,请帮我找到解决方案。提前谢谢,

        private void setActionBar()

         {               

           ActionBar bar = getActionBar();

    bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    bar.setDisplayShowHomeEnabled(false);
    bar.setDisplayShowTitleEnabled(false);

    ActionBar.Tab tabA = bar.newTab().setText("TabA");
        tabA.setIcon(R.drawable.iconA);

            ActionBar.Tab tabB = bar.newTab().setText("TabB");
    tabB.setIcon(R.drawable.iconB);

    ActionBar.Tab tabC = bar.newTab().setText("TabC");
            tabC.setIcon(R.drawable.iconC);
        }

1 个答案:

答案 0 :(得分:5)

您可以使用自定义视图来定义显示标签的方式。

  1. 定义自定义布局,其中您的文字位于文字上方
  2. 在您的活动中,为图片充气并设置图片和文字的值
  3. 设置标签的自定义视图
  4. 这是一个粗略的例子:

    CUSTOM LAYOUT

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_horizontal"
        android:orientation="vertical" >
    
    <ImageView
        android:id="@+id/tabIcon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:paddingTop="2dp" />
    
    <TextView
        android:id="@+id/tabText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:textColor="#FFFFFF" />
    
    </LinearLayout>
    

    INFLATE VIEW

    View tabView = activity.getLayoutInflater().inflate(R.layout.actiobar_tab, null);
    TextView tabText = (TextView) tabView.findViewById(R.id.tabText);
    tabText.setText(R.String.sometext);
    
    ImageView tabImage = (ImageView) tabView.findViewById(R.id.tabIcon);
    tabImage.setImageDrawable(activity.getResources().getDrawable(R.drawable.someimage));
    

    为GIVEN TAB设置自定义视图

    Tab tab = actionBar.newTab().setCustomView(tabView)