67、Fragment实现Tab
生活随笔
收集整理的這篇文章主要介紹了
67、Fragment实现Tab
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
<LinearLayout
。。。。。。。。。。 <FrameLayout android:id="@+id/id_content"android:layout_width="fill_parent"android:layout_height="0dp"android:layout_weight="1" /><include layout="@layout/bottom" />
</LinearLayout> 1 package com.imooc.tab02;
2
3 import android.os.Bundle;
4 import android.support.v4.app.Fragment;
5 import android.support.v4.app.FragmentActivity;
6 import android.support.v4.app.FragmentManager;
7 import android.support.v4.app.FragmentTransaction;
8 import android.view.View;
9 import android.view.View.OnClickListener;
10 import android.view.Window;
11 import android.widget.ImageButton;
12 import android.widget.LinearLayout;
13
14 public class MainActivity extends FragmentActivity implements OnClickListener {
15 private LinearLayout mTabWeixin;
16 private LinearLayout mTabFrd;
17 private LinearLayout mTabAddress;
18 private LinearLayout mTabSettings;
19
20 private ImageButton mImgWeixin;
21 private ImageButton mImgFrd;
22 private ImageButton mImgAddress;
23 private ImageButton mImgSettings;
24
25 private Fragment mTab01;
26 private Fragment mTab02;
27 private Fragment mTab03;
28 private Fragment mTab04;
29
30 @Override
31 protected void onCreate(Bundle savedInstanceState) {
32 super.onCreate(savedInstanceState);
33
34 requestWindowFeature(Window.FEATURE_NO_TITLE);
35 setContentView(R.layout.activity_main);
36
37 initView();
38 initEvent();
39 setSelect(0);
40 }
41
42 private void initEvent() {
43 mTabWeixin.setOnClickListener(this);
44 mTabFrd.setOnClickListener(this);
45 mTabAddress.setOnClickListener(this);
46 mTabSettings.setOnClickListener(this);
47 }
48
49 private void initView() {
50 mTabWeixin = (LinearLayout) findViewById(R.id.id_tab_weixin);
51 mTabFrd = (LinearLayout) findViewById(R.id.id_tab_frd);
52 mTabAddress = (LinearLayout) findViewById(R.id.id_tab_address);
53 mTabSettings = (LinearLayout) findViewById(R.id.id_tab_settings);
54
55 mImgWeixin = (ImageButton) findViewById(R.id.id_tab_weixin_img);
56 mImgFrd = (ImageButton) findViewById(R.id.id_tab_frd_img);
57 mImgAddress = (ImageButton) findViewById(R.id.id_tab_address_img);
58 mImgSettings = (ImageButton) findViewById(R.id.id_tab_settings_img);
59 }
60
61 private void setSelect(int i) {
62 FragmentManager fm = getSupportFragmentManager();
63 FragmentTransaction transaction = fm.beginTransaction();
64 hideFragment(transaction);
65 // 把圖片設置為亮的
66 // 設置內容區域
67 switch (i) {
68 case 0:
69 if (mTab01 == null) {
70 mTab01 = new WeixinFragment();
71 transaction.add(R.id.id_content, mTab01);
72 } else {
73 transaction.show(mTab01);
74 }
75 mImgWeixin.setImageResource(R.drawable.tab_weixin_pressed);
76 break;
77 case 1:
78 if (mTab02 == null) {
79 mTab02 = new FrdFragment();
80 transaction.add(R.id.id_content, mTab02);
81 } else {
82 transaction.show(mTab02);
83 }
84 mImgFrd.setImageResource(R.drawable.tab_find_frd_pressed);
85 break;
86 case 2:
87 if (mTab03 == null) {
88 mTab03 = new AddressFragment();
89 transaction.add(R.id.id_content, mTab03);
90 } else {
91 transaction.show(mTab03);
92 }
93 mImgAddress.setImageResource(R.drawable.tab_address_pressed);
94 break;
95 case 3:
96 if (mTab04 == null) {
97 mTab04 = new SettingFragment();
98 transaction.add(R.id.id_content, mTab04);
99 } else {
100 transaction.show(mTab04);
101 }
102 mImgSettings.setImageResource(R.drawable.tab_settings_pressed);
103 break;
104
105 default:
106 break;
107 }
108
109 transaction.commit();
110 }
111
112 private void hideFragment(FragmentTransaction transaction) {
113 if (mTab01 != null) {
114 transaction.hide(mTab01);
115 }
116 if (mTab02 != null) {
117 transaction.hide(mTab02);
118 }
119 if (mTab03 != null) {
120 transaction.hide(mTab03);
121 }
122 if (mTab04 != null) {
123 transaction.hide(mTab04);
124 }
125 }
126
127 @Override
128 public void onClick(View v) {
129 resetImgs(); // 切換圖片至暗色
130 switch (v.getId()) {
131 case R.id.id_tab_weixin:
132 setSelect(0);
133 break;
134 case R.id.id_tab_frd:
135 setSelect(1);
136 break;
137 case R.id.id_tab_address:
138 setSelect(2);
139 break;
140 case R.id.id_tab_settings:
141 setSelect(3);
142 break;
143
144 default:
145 break;
146 }
147 }
148
149 /**
150 * 切換圖片至暗色
151 */
152 private void resetImgs() {
153 mImgWeixin.setImageResource(R.drawable.tab_weixin_normal);
154 mImgFrd.setImageResource(R.drawable.tab_find_frd_normal);
155 mImgAddress.setImageResource(R.drawable.tab_address_normal);
156 mImgSettings.setImageResource(R.drawable.tab_settings_normal);
157 }
158
159 }
DEMO下載地址:http://download.csdn.net/detail/androidsj/9354303
總結
以上是生活随笔為你收集整理的67、Fragment实现Tab的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么样Windows7在配置ASPser
- 下一篇: 开始看 汇编语言程序设计