• 找呀志_往来(6)_仿微通道底部导航栏


    效果如下面的

    使用TabHost布局,并使用单选button组和FrameLayout相结合

    布局文件代码:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    
        <TabHost
            android:id="@android:id/tabhost"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >
    
            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:orientation="vertical" >
    
                <FrameLayout
                    android:id="@android:id/tabcontent"
                    android:layout_width="fill_parent"
                    android:layout_height="0.0dip"
                    android:layout_weight="1.0"
                    android:background="@color/daohang_text" >
                </FrameLayout>
    
                <TabWidget
                    android:id="@android:id/tabs"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="0.0"
                    android:visibility="gone" >
                </TabWidget>
    
                <RadioGroup
                    android:id="@+id/main_radiogroup"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="bottom"
                    android:background="@drawable/daohang_bg"
                    android:gravity="center"
                    android:orientation="horizontal" >
    
                    <RadioButton
                        android:id="@+id/RadioButton1"
                        android:layout_width="wrap_content"
                        android:layout_height="fill_parent"
                        android:layout_gravity="center_vertical"
                        android:layout_weight="1"
                        android:background="@drawable/xml_tab_backgruod"
                        android:button="@null"
                        android:drawableLeft="@drawable/xml_tabselect_bg1"
                        android:gravity="center"
                        android:paddingLeft="10dp"
                        android:text="@string/daohang_cards"
                        android:textColor="@color/color_radiobutton" />
    
                    <RadioButton
                        android:id="@+id/RadioButton0"
                        android:layout_width="wrap_content"
                        android:layout_height="fill_parent"
                        android:layout_gravity="center"
                        android:layout_weight="1.0"
                        android:background="@drawable/xml_tab_backgruod"
                        android:button="@null"
                        android:drawableLeft="@drawable/xml_tabselect_bg2"
                        android:gravity="center"
                        android:padding="10dp"
                        android:text="@string/daohang_person" />
    
                    <RadioButton
                        android:id="@+id/RadioButton2"
                        android:layout_width="wrap_content"
                        android:layout_height="fill_parent"
                        android:layout_gravity="center"
                        android:layout_weight="1.0"
                        android:background="@drawable/xml_tab_backgruod"
                        android:button="@null"
                        android:drawableLeft="@drawable/xml_tabselect_bg3"
                        android:gravity="center"
                        android:padding="10dp"
                        android:text="@string/daohang_change"
                        android:textColor="@color/color_radiobutton" />
    
                    <RadioButton
                        android:id="@+id/RadioButton3"
                        android:layout_width="wrap_content"
                        android:layout_height="fill_parent"
                        android:layout_gravity="center"
                        android:layout_weight="1"
                        android:background="@drawable/xml_tab_backgruod"
                        android:button="@null"
                        android:drawableLeft="@drawable/xml_tabselect_bg4"
                        android:gravity="center"
                        android:padding="10dp"
                        android:text="@string/daohang_setup"
                        android:textColor="@color/color_radiobutton" />
                </RadioGroup>
            </LinearLayout>
        </TabHost>
    
    </RelativeLayout>

    Acyivity代码:

    package com.cards.activity;
    
    import android.app.ActivityManager;
    import android.app.AlertDialog;
    import android.app.TabActivity;
    import android.content.DialogInterface;
    import android.content.DialogInterface.OnClickListener;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.KeyEvent;
    import android.widget.RadioGroup;
    import android.widget.RadioGroup.OnCheckedChangeListener;
    import android.widget.TabHost;
    import android.widget.TabHost.TabSpec;
    
    import com.cards.R;
    import com.cards.commom.MyApp;
    
    public class PremierAct extends TabActivity {
    	public static Class mTabClassArray[] = { CardsListAct.class,
    			MyCardAct.class, DiscoverAct.class, SetupAct.class };
    	public static String title[] = { "名片夹", "个人", "交换", "设置" };
    	private RadioGroup m_radioGroup;
    	private TabHost m_tabHost;
    	Intent intent;
    
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.act_premier);
    		// 用于安全退出
    		MyApp.getInstance().addActivity(this);
    		init();
    		// 设置默认显示界面
    		m_tabHost.setCurrentTabByTag(title[0]);
    		intent = new Intent();
    		startService(intent
    				.setAction("com.cards.activity.service.HeartService"));
    	}
    
    	// 初始化TabHost
    	private void init() {
    		m_tabHost = getTabHost();
    		int count = mTabClassArray.length;
    		for (int i = 0; i < count; i++) {
    			TabSpec tabSpec = m_tabHost.newTabSpec(title[i])
    					.setIndicator(title[i]).setContent(getTabItemIntent(i));
    			m_tabHost.addTab(tabSpec);
    		}
    
    		m_radioGroup = (RadioGroup) findViewById(R.id.main_radiogroup);
    		m_radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    
    			@Override
    			public void onCheckedChanged(RadioGroup group, int checkedId) {
    				switch (checkedId) {
    				case R.id.RadioButton0:
    					m_tabHost.setCurrentTabByTag(title[1]);
    					break;
    				case R.id.RadioButton1:
    					m_tabHost.setCurrentTabByTag(title[0]);
    					break;
    				case R.id.RadioButton2:
    					m_tabHost.setCurrentTabByTag(title[2]);
    
    					break;
    				case R.id.RadioButton3:
    					m_tabHost.setCurrentTabByTag(title[3]);
    					break;
    				}
    			}
    		});
    	}
    
    	private Intent getTabItemIntent(int index) {
    		Intent intent = new Intent(this, mTabClassArray[index]);
    		return intent;
    	}
    
    	@Override
    	protected void onStart() {
    		// 用于安全退出
    		MyApp.getInstance().addActivity(this);
    		super.onStart();
    	}
    
    	/**
    	 * 安全退出
    	 */
    	public boolean dispatchKeyEvent(KeyEvent event) {
    		if (event.getKeyCode() == KeyEvent.KEYCODE_BACK
    				&& event.getAction() == KeyEvent.ACTION_DOWN
    				&& event.getRepeatCount() == 0) {
    			// 详细的操作代码
    			AlertDialog.Builder builder = new AlertDialog.Builder(
    					PremierAct.this);
    			builder.setMessage("确认退出吗?");
    			builder.setTitle("温馨提示");
    			builder.setPositiveButton("确认", new OnClickListener() {
    				public void onClick(DialogInterface dialog, int which) {
    					dialog.dismiss();
    					ActivityManager activityMgr = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    					activityMgr.restartPackage(getPackageName());
    					stopService(intent
    							.setAction("com.cards.activity.service.HeartService"));
    
    					MyApp.getInstance().exit();
    					System.exit(0);
    					finish();
    					// 结束后台服务、 end
    				}
    			});
    			builder.setNegativeButton("取消", new OnClickListener() {
    				public void onClick(DialogInterface dialog, int which) {
    					// TODO Auto-generated method stub
    					dialog.dismiss();
    				}
    			});
    			builder.create().show();
    			return false;
    		}
    		return super.dispatchKeyEvent(event);
    	}
    
    	@Override
    	protected void onDestroy() {
    		// 退出时销毁当前activity时再销毁一次
    		ActivityManager activityMgr = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    		activityMgr.restartPackage(getPackageName());
    		MyApp.getInstance().exit();
    		System.exit(0);
    		stopService(intent.setAction("com.cards.activity.service.HeartService"));
    		finish();
    		super.onDestroy();
    	}
    }
    

    button按下效果:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:drawable="@drawable/daohang_cards" android:state_checked="false"/>
        <item android:drawable="@drawable/daohang_cards_put" android:state_checked="true"/>
    
    </selector>

    背景按下效果

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:drawable="@color/daohang_bg_put" android:state_checked="true"/>
    
    </selector>
    
     



    drawableTop:图片在上面

    drawableLeft:图片在右边


    图片在上边的样例:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    
        <TabHost
            android:id="@android:id/tabhost"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >
    
            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:orientation="vertical" >
    
                <FrameLayout
                    android:id="@android:id/tabcontent"
                    android:layout_width="fill_parent"
                    android:layout_height="0.0dip"
                    android:layout_weight="1.0"
                    android:background="@color/white" >
                </FrameLayout>
    
                <TabWidget
                    android:id="@android:id/tabs"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="0.0"
                    android:visibility="gone" >
                </TabWidget>
    
                <RadioGroup
                    android:id="@+id/main_radiogroup"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="bottom"
                    android:background="@drawable/daohang_bg"
                    android:gravity="center"
                    android:paddingBottom="5dp"
                    android:paddingTop="5dp"
                    android:orientation="horizontal" >
    
                    <RadioButton
                        android:id="@+id/RadioButton1"
                        android:layout_width="wrap_content"
                        android:layout_height="fill_parent"
                        android:layout_gravity="center"
                        android:layout_weight="1"
                        android:background="@drawable/xml_tab_backgruod"
                        android:button="@null"
                        android:drawableTop="@drawable/xml_tabselect_bg1"
                        android:gravity="center"
                        android:text="资讯"
                        android:textColor="@color/white" />
    
                    <RadioButton
                        android:id="@+id/RadioButton0"
                        android:layout_width="wrap_content"
                        android:layout_height="fill_parent"
                        android:layout_gravity="center"
                        android:layout_weight="1.0"
                        android:background="@drawable/xml_tab_backgruod"
                        android:button="@null"
                        android:drawableTop="@drawable/xml_tabselect_bg1"
                        android:gravity="center"
                        android:text="学生中心"
                        android:textColor="@color/white" />
    
                    <RadioButton
                        android:id="@+id/RadioButton2"
                        android:layout_width="wrap_content"
                        android:layout_height="fill_parent"
                        android:layout_gravity="center"
                        android:layout_weight="1.0"
                        android:background="@drawable/xml_tab_backgruod"
                        android:button="@null"
                        android:drawableTop="@drawable/xml_tabselect_bg1"
                        android:gravity="center"
                        android:text="校友中心"
                        android:textColor="@color/white" />
    
                    <RadioButton
                        android:id="@+id/RadioButton3"
                        android:layout_width="wrap_content"
                        android:layout_height="fill_parent"
                        android:layout_gravity="center"
                        android:layout_weight="1"
                        android:background="@drawable/xml_tab_backgruod"
                        android:button="@null"
                        android:drawableTop="@drawable/xml_tabselect_bg1"
                        android:gravity="center"
                        android:text="个人"
                        android:textColor="@color/white" />
                </RadioGroup>
            </LinearLayout>
        </TabHost>
    
    </RelativeLayout>


    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    ArrayList类?
    Spring事务管理?
    Collection集合?
    Scanner类?
    定义三个int类型变量c,d,e. 求出三个变量的最大值,并打印出来?
    定义一个三位整数,请分别获取该三位数上每一位的数值 ?
    Collection集合和Map集合的区别?
    UITableView不错的资源大全
    几个新的开源框架
    一个错误Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0x4b3c2a0> setValue:forUndefinedKey:]: this class i
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4643807.html
Copyright © 2020-2023  润新知