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

use*_*932 4 android

我是新来android.I想实现这三个标签一个动作条,每个选项卡包含一个图标和tab.I上午的名称成功地将每个选项卡上的图标和文字,但不幸的是图标文本的左侧到来(选项卡的名称)在选项卡中.我希望文本顶部的地方图标而不是左侧.请找到我的代码片段,请帮我找到解决方案.提前致谢,

        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);
        }
Run Code Online (Sandbox Code Playgroud)

小智 5

您可以使用自定义视图来定义要显示选项卡的方式.

  1. 定义自定义布局,其中您的文本上方有图像
  2. 在您的活动中,夸大视图并设置图像和文本的值
  3. 设置选项卡的自定义视图

这是一个粗略的例子:

定制布局

<?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>
Run Code Online (Sandbox Code Playgroud)

通货膨胀视图

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));
Run Code Online (Sandbox Code Playgroud)

设置GIVEN TAB的定制视图

Tab tab = actionBar.newTab().setCustomView(tabView)
Run Code Online (Sandbox Code Playgroud)