当前位置 : 主页 > 编程语言 > c++ >

实现一个底部导航栏

来源:互联网 收集:自由互联 发布时间:2021-06-30
activity_main.xml bottom_tab_text_color_selector.xml MainActivity.java package com.zhoan.hcym;import com.xinbo.utils.TextViewUtils;import com.zhoan.hcym.fragment.ExitDialogFragment;import android.os.Bundle;import android.os.Handler;import a
activity_main.xml
 

 

    
   
    
     
     
     
     
    
  


 
bottom_tab_text_color_selector.xml
 

 
    
  
    
  
    
  

 
MainActivity.java
package com.zhoan.hcym;

import com.xinbo.utils.TextViewUtils;
import com.zhoan.hcym.fragment.ExitDialogFragment;

import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.FragmentTabHost;
import android.support.v7.app.AppCompatActivity;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
	private FragmentTabHost mTabHost;
	private Handler mHandler = new Handler();

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		initTab();
	}

	private void initTab() {
		mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
		mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
		addTab("首页", R.drawable.selector_home, HomeFragment.class);
		addTab("分类", R.drawable.selector_catagory, CatagoryFragment.class);
		addTab("购物车", R.drawable.selector_shopcart, CartFragment.class);
		addTab("我的", R.drawable.selector_mine, MineFragment.class);
	}

	private void addTab(String title, int selector, Class
  class1) {
		addTab(title, selector, class1, null);
	}

	private void addTab(String title, int selector, Class
  class1, Bundle bundle) {

		View layout = getLayoutInflater().inflate(R.layout.tab, null);
		TextView tabTitle = (TextView) layout.findViewById(R.id.tab_title);
		tabTitle.setText(title);
		TextViewUtils.setTextDrawable(this, selector, tabTitle);

		mTabHost.addTab(mTabHost.newTabSpec(title).setIndicator(layout), class1, bundle);
	}

	/*
	 * @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the
	 * menu; this adds items to the action bar if it is present.
	 * getMenuInflater().inflate(R.menu.main, menu); return true; }
	 * 
	 * @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle
	 * action bar item clicks here. The action bar will // automatically handle
	 * clicks on the Home/Up button, so long // as you specify a parent activity
	 * in AndroidManifest.xml. int id = item.getItemId(); if (id ==
	 * R.id.action_settings) { return true; } return
	 * super.onOptionsItemSelected(item); }
	 */
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if (keyCode == KeyEvent.KEYCODE_BACK) {
			String currentTabTag = mTabHost.getCurrentTabTag();
			if ("首页".equals(currentTabTag)) {
				mHandler.postDelayed(new Runnable() {
					public void run() {
						popupExitDialog();
					}
				}, 2000);
			
			} else {
				mTabHost.setCurrentTabByTag("首页");
			}
			return false;
		}
		return super.onKeyDown(keyCode, event);
	}

	public void popupExitDialog() {
		ExitDialogFragment exitDialogFragment = new ExitDialogFragment();
		/*
		 * exitDialogFragment.setOnDialogClickListener(new
		 * OnDialogClickListener() {
		 * 
		 * @Override public void OnDialogClick() { // TODO Auto-generated method
		 * stub finish(); } });
		 */
		exitDialogFragment.show(getFragmentManager(), null);
	}
}
selector_home.xml
 

 
      
  
    
  
    
  


 
tab.xml
 

 

    
  

    
  


 
TextViewUtils.java
package com.xinbo.utils;

import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.view.View;
import android.widget.TextView;

public final class TextViewUtils {

	public static void setTextDrawable(Context context, int drawableRes,
			TextView tvName) {
		Drawable drawableTop = context.getResources().getDrawable(drawableRes);
		// 必须设置图片大小,否则不显示
		drawableTop.setBounds(0, 0, drawableTop.getMinimumWidth(),
				drawableTop.getMinimumHeight());
		tvName.setCompoundDrawables(null, drawableTop, null, null);
	}

	public static void setTextDrawable(Context context, Bitmap bitmap,
			TextView tvName) {
		Drawable drawableTop = BitmapUtils.bitmap2Drawable(bitmap);
		// 必须设置图片大小,否则不显示
		drawableTop.setBounds(0, 0, drawableTop.getMinimumWidth(),
				drawableTop.getMinimumHeight());
		tvName.setCompoundDrawables(null, drawableTop, null, null);
	}

	public static void setTextDrawable(Context context, String url,
			final TextView textView) {
		ImageLoader.getInstance().loadImage(url, new ImageLoadingListener() {
			public void onLoadingStarted(String arg0, View arg1) {
			}

			public void onLoadingFailed(String arg0, View arg1, FailReason arg2) {
			}

			public void onLoadingComplete(String arg0, View arg1, Bitmap bitmap) {
				Drawable drawableTop = BitmapUtils.bitmap2Drawable(bitmap);
				// 必须设置图片大小,否则不显示
				drawableTop.setBounds(0, 0, drawableTop.getMinimumWidth(),
						drawableTop.getMinimumHeight());
				textView.setCompoundDrawables(null, drawableTop, null, null);
			}

			public void onLoadingCancelled(String arg0, View arg1) {
			}
		});
	}

}
styles.xml
网友评论