使用GridView和ActivityGroup实现tab切换
来源:互联网 发布:淘宝的信誉评级怎么看 编辑:程序博客网 时间:2024/05/22 07:40
弄了一整天总算把这种效果弄出来了。
附上demo下载链接 点击打开链接
先上张效果图:
点击下面4个按钮,是中间的布局跳转.
下方的布局是一个GridView,中间一个LinearLayout.
代码:
main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent" android:layout_height="fill_parent"android:orientation="vertical" android:background="#EBF1DE"android:id="@+id/mainLayout" ><LinearLayout android:id="@+id/center"android:layout_width="fill_parent" android:layout_height="wrap_content"android:layout_below="@+id/lin"/> <GridView android:id="@+id/grid_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_gravity= "bottom" android:numColumns="4" android:horizontalSpacing="10dp" android:gravity="center_horizontal" android:background="@drawable/maintab_toolbar_bg"></GridView></RelativeLayout>对于gridView中数据项的xml:
item.xml:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ImageView android:id="@+id/item_iamge" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" /> <TextView android:id="@+id/item_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:textSize="10.0dip"/></LinearLayout>
关键是主Activity要继承自ActivityGroup
MainActivity:
public class MainActivity extends ActivityGroup{private int selected;public LinearLayout container;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);super.setContentView(R.layout.main);container = (LinearLayout)findViewById(R.id.center);ArrayList<HashMap<String, Object>> menu_data = new ArrayList<HashMap<String,Object>>();int[] images = { R.drawable.home, R.drawable.publish,R.drawable.change,R.drawable.more };String[] menu_texts = { "主页", "发布", "随便看看","更多" };for(int i=0;i<images.length;i++){HashMap<String, Object> map = new HashMap<String, Object>();map.put("menu_image", images[i]);map.put("menu_text", menu_texts[i]);menu_data.add(map);}GridView gv = (GridView)findViewById(R.id.grid_view);SimpleAdapter adapter = new SimpleAdapter(this, menu_data,R.layout.item, new String[] { "menu_image", "menu_text" },new int[] { R.id.item_iamge, R.id.item_text });gv.setAdapter(adapter);switchActivity(selected);gv.setOnItemClickListener(new OnItemClickListener(){@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {if(selected == position){return;}selected = position;switchActivity(selected);}});}public void switchActivity(int selected){container.removeAllViews();Intent intent = null;String tag = "";if(selected==0){intent = new Intent(MainActivity.this, TabActivity01.class);tag = "tabActivity01";}else if(selected==1){intent = new Intent(MainActivity.this, TabActivity02.class);tag = "tabActivity02";}else if(selected==2){intent = new Intent(MainActivity.this,TabActivity01.class);tag = "tabActivity03";}else if(selected==3){intent = new Intent(MainActivity.this, TabActivity02.class);tag = "tabActivity04";} Window subActivity = getLocalActivityManager().startActivity(tag,intent); //容器添加View container.addView(subActivity.getDecorView(), LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); }}
主要的代码就这些,其他的Activity可以自己随便写。
- 使用GridView和ActivityGroup实现tab切换
- Android 基于GridView和ActivityGroup实现的TAB分页
- Android 基于GridView和ActivityGroup实现的TAB分页
- Android 基于GridView和ActivityGroup实现的TAB分页
- ActivityGroup + GridView 实现Tab分页标签
- ActivityGroup + GridView 实现Tab分页标签
- ActivityGroup + GridView 实现Tab分页标签
- ActivityGroup + GridView 实现Tab分页标签
- ActivityGroup + GridView 实现Tab分页标签
- ActivityGroup + GridView 实现Tab分页标签
- Android ActivityGroup + GridView 实现Tab分页标签 .
- ActivityGroup + GridView 实现Tab分页标签
- ActivityGroup + GridView 实现Tab分页标签
- ActivityGroup + GridView 实现Tab分页标签
- Android之Tab分页标签的实现方法--------采用ActivityGroup和GridView的结合
- Android之Tab分页标签的实现方法--------采用ActivityGroup和GridView的结合
- Android之Tab分页标签的实现方法--------采用ActivityGroup和GridView的结合
- Android之Tab分页标签的实现方法-----采用ActivityGroup和GridView的结合
- sql 语法 cast 不太清楚 还有ibatis语法
- 编程高手成长的六个阶段(梁肇新《编程高手箴言》)
- 在用户空间发生中断时,上下文切换的过程
- Decorator------设计模式
- 开始python 之旅
- 使用GridView和ActivityGroup实现tab切换
- 提高性能的方法
- MyEclipse8.5反编译方法
- 二元一次方程的解和二元一次方程组的解之间的联系的道理
- Linux内核模块开发
- 自定义jQuery插件
- SVN使用教程之-分支/标记 合并 subeclipse
- RTMP: Real Time Messaging Protocol
- loadrunner中socket协议中的关联函数