`
uiiang
  • 浏览: 30256 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用Gallery代替TabHost

阅读更多

      android SDK中提供了TabHost使用起来很方便, 但是当tab比较多的时候,就会挤在一起,而不能横向的滚动比较麻烦.

      于是我尝试的制作了一个简单的使用Gallery来代替TabHost的例子, 确实够简单的,自娱自乐.....仅供参考

 

     

 

      使用BroadcastReceiver来切换不同的Tab

 

    public class ChangeTabBroadcastReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            int index = intent.getExtras().getInt(CURRENT_TAB_INDEX);
            Log.i(TAG, "onReceive index = " + index);
            // setCurrentTab(index);
            topBar.setSelection(index);
            startGroupActivity(titleList.get(index).toString(),
                    (Intent) intentList.get(index));
        }
    }

 

     没有详细研究SDK中的TabHost实现机制, 使用起来还是有些不方便的地方

 

public class GalleryTabActivityDemo extends GalleryTabactivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setDelegate(new SliderBarActivityDelegateImpl());
        for (int i = 0; i < 14; i++) {
            Intent intent;
            if (i % 2 == 0)
                intent = new Intent(this, DemoActivity1.class);
            else
                intent = new Intent(this, DemoActivity2.class);

            this.addTab("title" + i, android.R.drawable.star_on, intent);

        }
//必须在addTab后调用commit, 有点麻烦, 将来会找更好的办法
        super.setup();
    }

//可自定义切换tab时触发的操作
    private class SliderBarActivityDelegateImpl extends
            SliderBarActivityDelegate {
        protected void onTabChanged(int tabIndex) {
            Log.d("onTabChanged", "" + tabIndex);
        }
    }
}

 

最近工作比较忙,没太多时间学习android,将来会慢慢改善, 先凑合用, 抛块砖先, 各位有玉的使劲砸, 金条也行

分享到:
评论
1 楼 mklzdd 2010-05-15  
用ImageSwitch好像也能实现这个功能!!学习了。。

相关推荐

Global site tag (gtag.js) - Google Analytics