-
package com.jackie;
-
-
import android.app.Activity;
-
import android.app.Fragment;
-
import android.app.FragmentTransaction;
-
import android.content.Context;
-
import android.os.Bundle;
-
import android.text.TextUtils;
-
import android.view.View;
-
import android.widget.ImageView;
-
import android.widget.TabHost;
-
import android.widget.TabHost.OnTabChangeListener;
-
import android.widget.TabWidget;
-
-
import com.jackie.R;
-
-
-
-
-
-
-
-
-
-
public class TestTabWidget extends Activity {
-
TabHost tabHost;
-
Fragment fragment;
-
@Override
-
protected void onCreate(Bundle savedInstanceState) {
-
super.onCreate(savedInstanceState);
-
setContentView(R.layout.tabhost_tabwidget);
-
tabHost = (TabHost) findViewById(android.R.id.tabhost);
-
tabHost.setup();
-
tabHost.setOnTabChangedListener(new OnTabChangeListener() {
-
-
@Override
-
public void onTabChanged(String tabId) {
-
System.out.println("current tabid=" + tabId);
-
FragmentTransaction ft = getFragmentManager().beginTransaction();
-
if (TextUtils.equals("first", tabId)) {
-
-
fragment= new Fragment1();
-
System.out.println("load frament1");
-
} else if (TextUtils.equals("second", tabId)) {
-
-
fragment = new Fragment2();
-
System.out.println("load frament2");
-
} else if (TextUtils.equals("third", tabId)) {
-
-
fragment = new Fragment3();
-
System.out.println("load frament3");
-
}
-
ft.replace(android.R.id.tabcontent, fragment, "fragment");
-
ft.commit();
-
}
-
});
-
tabHost.addTab(tabHost.newTabSpec("first").setIndicator("First")
-
.setContent(new DummyTabFactory(this)));
-
tabHost.addTab(tabHost.newTabSpec("second").setIndicator("Second")
-
.setContent(new DummyTabFactory(this)));
-
tabHost.addTab(tabHost.newTabSpec("third").setIndicator("Third")
-
.setContent(new DummyTabFactory(this)));
-
}
-
-
-
static class DummyTabFactory implements TabHost.TabContentFactory {
-
private Context context;
-
public DummyTabFactory(Context ctx) {
-
this.context = ctx;
-
}
-
@Override
-
public View createTabContent(String tag) {
-
View v = new ImageView(context);
-
v.setMinimumWidth(0);
-
v.setMinimumHeight(0);
-
return v;
-
}
-
-
}
-
}
效果
当然,现在还只能通过点击上面的Tab来切换相应的Fragment,真正的网易菜单还可以左右滑动来切换的,这时候只需要为每个Fragment添加滑动事件实现相应的逻辑即可。