• 机器人也能拥有“情商”?这个可以有 2019-07-19
  • 重庆“轮椅教师”高位截瘫仍坚守讲台 2019-07-07
  • 百度车联网携手宝马 合作伙伴全面升级为国际OEM厂商 2019-07-01
  • 全面从严治党永远在路上——辽宁代表团开放日侧记 2019-07-01
  • 【学习时刻】华侨大学黄日涵:“一带一路”盛会开启合作发展新篇章 2019-06-24
  • 秒变迷弟!吴建豪晒与甄子丹合影:偶像给我签名 2019-06-20
  • 军统头目戴笠留下哪些巨额遗产 令蒋介石身边人惊诧 2019-06-20
  • 初春喝藿香汤 解表化湿,散寒温经 2019-06-18
  • 新华时评:磋商,不等于反复折腾 2019-06-09
  • 天山特克斯峡谷 中国国家地理网 2019-06-08
  • 端午小长假珠海口岸将迎双向客流高峰 2019-06-08
  • 王朝崩塌!恒大半个月内双线出局 卡帅敲响下课警钟 2019-06-07
  • 一周人事:国务院发布任免刘伟当选北京市总工会主席 2019-06-07
  • 敞篷式设计 日产聆风Open Car官图发布 2019-06-06
  • 习近平为传统文化“代言” 2019-06-05
  • 香港赛马会43期:Android TabHost选项卡标签图标始终不出现的解决方法

    香港赛马会网站惠泽社绝杀八码 www.mwcrz.tw  更新时间:2019年03月16日 10:07:45   作者:张智清   我要评论

    这篇文章主要介绍了Android TabHost选项卡标签图标始终不出现的解决方法,涉及Android界面布局相关属性与状态设置操作技巧,需要的朋友可以参考下

    本文实例分析了Android TabHost选项卡标签图标始终不出现的解决方法。分享给大家供大家参考,具体如下:

    在学习Android TabHost布局过程中,很多教程告诉我,这样来显示选项卡标签的图标和文字:

    TapSpec spec1 = tabHost.newTabSpec("tab 1");
    spec1.setIndicator("选项卡一", getResources().getDrawable(R.drawable.tab_icon));
    spec1.setContent(R.id.tab1);
    tabHost.addTab(spec1);
    
    

    折腾来折腾去,setIndicator(label, drawable)这个方法始终不能将标题文字与图标一起显示出来,只有文字标题。

    在没将电脑砸了之前,通过万能的stackoverflow.com终于知道确切答案以及相应方法了:
    //stackoverflow.com/questions/10745092/icon-in-tab-is-not-showing-up

    其实就是SDK 4.03(冰激凌)下:只有文字标题显示,图标是不显示的。如果将文字标题设置为空字符串,则此时图标可显示。

    对于冰激凌下两全其美的方法,只能是自定义标签卡布局,创建一个包含ImageView和TextView组件的界面布局文件 tab_indicator.xml(layout/tab_indicator.xml),然后用setIndicator(View view)方法来设置TabSpec的界面布局。

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="//schemas.android.com/apk/res/android"
    android:layout_width="0dip"
    android:layout_height="64dip"
    android:layout_weight="1"
    android:orientation="vertical"
    android:background="@drawable/tab_indicator"
    android:padding="5dp">
    <ImageView android:id="@+id/icon"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    />
    <TextView android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    style="?android:attr/tabWidgetStyle"
    />
    </RelativeLayout>
    
    

    接着我们可以在drawable图片资源目录下创建一个tab_info.xml文件,用来指示Tab图标的各状态。

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="//schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/tab_info_dark"
    android:state_selected="true" />
    <item android:drawable="@drawable/tab_info_light" />
    </selector>
    
    

    现在就可以通过下面的代码将我们自定义的视图作为一个indicator配置给TapSpec对象。

    private void addTab(String label, int drawableId) {
    Intent intent = new Intent(this, MockActivity.class);
    TabHost.TabSpec spec = tabHost.newTabSpec(label);
    View tabIndicator = LayoutInflater.from(this).inflate(R.layout.tab_indicator, getTabWidget(), false);
    TextView title = (TextView) tabIndicator.findViewById(R.id.title);
    title.setText(label);
    ImageView icon = (ImageView) tabIndicator.findViewById(R.id.icon);
    icon.setImageResource(drawableId);
    spec.setIndicator(tabIndicator);
    spec.setContent(intent);
    tabHost.addTab(spec);
    }
    
    

    像以下方式那样调用上面那自定义addTab方法

    tabHost = getTabHost(); //tabHost is a private field
    addTab("First", R.drawable.tab_info);
    addTab("Second", R.drawable.tab_info);
    addTab("Third", R.drawable.tab_info);
    
    

    注意:当用自定义视图的indicator来添加Tab时,要将strip_enabled属性设置为false。若要兼顾底部strip,那在添加最后一个Tab后设置getTabWidget().setStripEnabled(true);

    更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结

    希望本文所述对大家Android程序设计有所帮助。

    相关文章

    最新评论

  • 机器人也能拥有“情商”?这个可以有 2019-07-19
  • 重庆“轮椅教师”高位截瘫仍坚守讲台 2019-07-07
  • 百度车联网携手宝马 合作伙伴全面升级为国际OEM厂商 2019-07-01
  • 全面从严治党永远在路上——辽宁代表团开放日侧记 2019-07-01
  • 【学习时刻】华侨大学黄日涵:“一带一路”盛会开启合作发展新篇章 2019-06-24
  • 秒变迷弟!吴建豪晒与甄子丹合影:偶像给我签名 2019-06-20
  • 军统头目戴笠留下哪些巨额遗产 令蒋介石身边人惊诧 2019-06-20
  • 初春喝藿香汤 解表化湿,散寒温经 2019-06-18
  • 新华时评:磋商,不等于反复折腾 2019-06-09
  • 天山特克斯峡谷 中国国家地理网 2019-06-08
  • 端午小长假珠海口岸将迎双向客流高峰 2019-06-08
  • 王朝崩塌!恒大半个月内双线出局 卡帅敲响下课警钟 2019-06-07
  • 一周人事:国务院发布任免刘伟当选北京市总工会主席 2019-06-07
  • 敞篷式设计 日产聆风Open Car官图发布 2019-06-06
  • 习近平为传统文化“代言” 2019-06-05
  • 上海上港对蔚山现代 印第安追梦APP下载 云南快乐10分开奖 最新贵州麻将技巧 多特蒙德队 波斯波利斯足球俱乐部 黄金翅膀电子游艺 湖北30选5今晚中奖号码 山东麻将258将胡法 佛罗伦萨themall