zoukankan      html  css  js  c++  java
  • Android TabHost 的美化与设计

    用到的布局xml文件内容如下:

    <?xml version="1.0" encoding="utf-8"?>
    <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@android:id/tabhost"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent">
     
       <LinearLayout
          android:orientation="vertical"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent">
          <FrameLayout
             android:id="@android:id/tabcontent"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:layout_weight="1">
          </FrameLayout>
          <TabWidget
             android:id="@android:id/tabs"
             android:layout_width="fill_parent"
             android:layout_alignParentBottom="true"
             android:layout_height="wrap_content"/>
        </LinearLayout>
    </TabHost>

    Activity 中抒写的代码:

    //记得先定义这几个变量
    private TabHost tabHost;
    private TabWidget tabWidget;
    Field mBottomLeftStrip;
    Field mBottomRightStrip;
    
    public TabHost makeTab(){
            if(this.tabHost == null){
                    tabHost = (TabHost)findViewById(android.R.id.tabhost);
                    tabWidget = (TabWidget)findViewById(android.R.id.tabs);
                    tabHost.setup();
                    tabHost.bringToFront();
    
                    TabSpec nearby_tab = tabHost.newTabSpec("nearby_tab");
                    TabSpec history_tab = tabHost.newTabSpec("history_tab");
                    TabSpec about_tab = tabHost.newTabSpec("about_tab");
    
                    nearby_tab.setIndicator("first",getResources().getDrawable(R.drawable.first)).setContent(new Intent(this,first.class));
                    history_tab.setIndicator("second",getResources().getDrawable(R.drawable.second)).setContent(new Intent(this,second.class));
                    about_tab.setIndicator("third",getResources().getDrawable(R.drawable.third)).setContent(new Intent(this,third.class));
    
                    tabHost.addTab(nearby_tab);
                    tabHost.addTab(history_tab);
                    tabHost.addTab(about_tab);
    
                    if (Integer.valueOf(Build.VERSION.SDK) <= 7) {
                            try {
                                    mBottomLeftStrip = tabWidget.getClass().getDeclaredField ("mBottomLeftStrip");
                                    mBottomRightStrip = tabWidget.getClass().getDeclaredField ("mBottomRightStrip");
                                    if(!mBottomLeftStrip.isAccessible()) {
                                            mBottomLeftStrip.setAccessible(true);
                                    }
                                    if(!mBottomRightStrip.isAccessible()){
                                            mBottomRightStrip.setAccessible(true);
                                    }
                                    mBottomLeftStrip.set(tabWidget, getResources().getDrawable (R.drawable.linee));
                                    mBottomRightStrip.set(tabWidget, getResources().getDrawable (R.drawable.linee));
    
                            } catch (Exception e) {
                                    e.printStackTrace();
                            }
                    } else {
                            try {
                                    mBottomLeftStrip = tabWidget.getClass().getDeclaredField("mLeftStrip");
                                    mBottomRightStrip = tabWidget.getClass().getDeclaredField("mRightStrip");
                                    if (!mBottomLeftStrip.isAccessible()) {
                                            mBottomLeftStrip.setAccessible(true);
                                    }
                                    if (!mBottomRightStrip.isAccessible()) {
                                            mBottomRightStrip.setAccessible(true);
                                    }
                                    mBottomLeftStrip.set(tabWidget, getResources().getDrawable(R.drawable.linee));
                                    mBottomRightStrip.set(tabWidget, getResources().getDrawable(R.drawable.linee));
                            } catch (Exception e) {
                                    // TODO Auto-generated catch block
                                    e.printStackTrace();
                            }
                    }
    
                    for (int i =0; i <tabWidget.getChildCount(); i++) {
    
                            final TextView tv = (TextView) tabWidget.getChildAt(i).findViewById(android.R.id.title);
                            tv.setTextColor(Color.WHITE);
                            View vvv = tabWidget.getChildAt(i);
                            if(tabHost.getCurrentTab()==i){
                                    vvv.setBackgroundDrawable(getResources().getDrawable(R.drawable.focus));
                            }
                            else {
                                    vvv.setBackgroundDrawable(getResources().getDrawable(R.drawable.unfocus));
                            }
                    }
    
                    tabHost.setOnTabChangedListener(new OnTabChangeListener(){
    
                            @Override
                            public void onTabChanged(String tabId) {
                            // TODO Auto-generated method stub
                            for (int i =0; i < tabWidget.getChildCount(); i++) {
                                    View vvv = tabWidget.getChildAt(i);
                                    if(tabHost.getCurrentTab()==i){
                                            vvv.setBackgroundDrawable(getResources().getDrawable(R.drawable.focus));
                                    }
                                    else {
                                            vvv.setBackgroundDrawable(getResources().getDrawable(R.drawable.unfocus));
                                    }
                            }
                            }
                    });
            }
            else{
                    return tabHost;
            }
            return null;
    }

    <ignore_js_op> TestTab.zip (107.97 KB, 下载次数: 778) 

     
  • 相关阅读:
    powerdesigner流程图库看不到了palette视图,palette视图没有了
    IE的getelementbyid(elementid)方法的使用(转)
    QTP的那些事通过html标签的属性获取对象(类似onclick的属性)
    oracle语句详解group by语句解答
    oracle中的decode的使用
    oracle中的trunc函数操作
    QTP的那些事—WMI+SQL分析查询工具
    VBS获取毫秒的时间方法整理
    VBS输出双引号””
    VBSEdit工具学习深入
  • 原文地址:https://www.cnblogs.com/a354823200/p/3921562.html
Copyright © 2011-2022 走看看