Android开发:抄袭微博布局总结
别人的好的东西,就应该拿过来借鉴,并改进,我想这就是拿来主义
我画图不好,其实我很想用画图的方式来说明一切,因为通俗简单的就是最好的
首先是思维导图...这个思维导图,因为只能看界面,得不到源代码,所以通过画图的方式来分析界面以及功能
这是主页的xml ,相信明眼人一看就知道,这是全屏幕适配的. 来自沈大海的微博教学以及 农民伯伯的 博客分析新浪官方微博布局
粉红色分为固定像素的顶部条以及底部Tab菜单
顶部只有RelativeLayout构成,可以添加标题,各种小提示..
底部则为Tab选项卡,为不同的Activity切换
然后中间部分整体为黄色部分,也就是动态改变刷新各种数据的Layout
然后又按比例细分为 [蓝色红色] 以及 [浅蓝色],他们占相应比例充满父类
深蓝和红色为同一Layout,红色宽度为fill_parent,高度为wrap_content,
为每个不同的Activity添加进不同的头部item奠定自由的基础
而深蓝则高度宽度都为fill_parent,与红色layout一起充满父类,
蓝色可以添加listView或者添加GridView来现实微博列表或者是用户列表,用过pad版的微博的人应该都会知道
正题逻辑分为BossActivity 掌管所有显示layout,然后的Activity有搜索,我的主页,信息,@,....
它们都不需要任何布局,只需要合理的调用生命周期,来刷新数据往Boss里面的深蓝色部分刷新
红色部分则每个子Activity<搜索,我的主页,信息,@,...>都是对应不一样的 可以用LayoutInflater来加载...
浅蓝色部分,则为衍生的三个Activity的装载layout 哪三个,上图很清晰 分别是微博正文,用户信息,以及话题详情
那点击深蓝色部分的item时候该响应加载哪个Activity?这就有你来指挥了.
难点在于...用户信息Activity还要再看用户信息,再看某个用户信息,再看微博正文,再看某用户的微博...
这三个Activity都是可以复用的.思维导图也可以明显地看出有一个循环
这个想法是由我定下的,但是我想写代码过程中 肯定会遇到种种细节上的困难...
还有这样的想法,如果有人有好的建议或者意见的话 一定要提出来
- <?xml version="1.0" encoding="utf-8"?>
- <TabHost
- xmlns:Android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:gravity="center"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:id="@+id/@android:id/tabhost"
- android:background="@drawable/myweibo_boss_bg">
- <RelativeLayout
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical">
- <!-- top横条 -->
- <RelativeLayout
- android:background="@drawable/top3"
- android:layout_width="fill_parent"
- android:layout_height="41dip"
- android:id="@+id/layout_weibo_boss_top"></RelativeLayout>
- <RelativeLayout
- android:layout_centerInParent="true"
- android:layout_below="@+id/layout_weibo_boss_top"
- android:layout_above="@+id/layout_weibo_boss_bottom"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:id="@+id/layout_weibo_boss_middle_msg"></RelativeLayout>
- <LinearLayout
- android:layout_below="@+id/layout_weibo_boss_top"
- android:layout_above="@+id/layout_weibo_boss_bottom"
- android:id="@+id/layout_weibo_boss_middle"
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <LinearLayout
- android:layout_weight="1.0"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:id="@+id/weiboBoss_LeftLayout"
- android:background="@drawable/weibo_list_bg">
- <!-- listView头上那堆View -->
- <RelativeLayout
- android:background="@drawable/weibo_boss_topitems_bg"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:id="@+id/topItem_of_weiboBoss_LeftLayout">
- </RelativeLayout>
- <!-- ListView或者GridView的layout -->
- <RelativeLayout
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:id="@+id/list_of_weiboBoss_LeftLayout">
- </RelativeLayout>
- </LinearLayout>
- <!-- Boss右边的详情layout,可以是微博详情或者是用户详情 -->
- <RelativeLayout
- android:layout_weight="1.0"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:id="@+id/weiboBoss_RightLayout"></RelativeLayout>
- </LinearLayout>
- <FrameLayout
- android:layout_width="fill_parent"
- android:layout_height="0.0dip"
- android:layout_weight="1.0"
- android:id="@android:id/tabcontent">
- </FrameLayout>
- <TabWidget
- android:layout_width="fill_parent"
- android:layout_height="0.0dip"
- android:layout_weight="0.0"
- android:visibility="gone"
- android:id="@android:id/tabs"></TabWidget>
- <!-- 底部横条以及RadioButton -->
- <RelativeLayout
- android:layout_alignParentBottom="true"
- android:layout_width="fill_parent"
- android:layout_height="57dip"
- android:background="@drawable/formlist_bottom_btn"
- android:id="@+id/layout_weibo_boss_bottom">
- <RadioGroup
- android:layout_width="wrap_content"
- android:layout_height="57dip"
- android:orientation="horizontal"
- android:gravity="center_vertical"
- android:layout_gravity="bottom"
- android:id="@+id/boss_radio">
- <RadioButton
- android:drawableTop="@drawable/radio_newstyle_boss_home"
- android:checked="true"
- android:id="@+id/radio_button0"
- android:layout_marginTop="2.0dip"
- style="@style/boss_tab_bottom">
- </RadioButton>
- <RadioButton
- android:drawableTop="@drawable/radio_newstyle_boss_search"
- android:id="@+id/radio_button1"
- android:layout_marginTop="2.0dip"
- style="@style/boss_tab_bottom" />
- <RadioButton
- android:drawableTop="@drawable/radio_newstyle_boss_myweibo"
- android:id="@+id/radio_button2"
- android:layout_marginTop="2.0dip"
- style="@style/boss_tab_bottom" />
- <RadioButton
- android:drawableTop="@drawable/radio_newstyle_boss_reply"
- android:id="@+id/radio_button3"
- android:layout_marginTop="2.0dip"
- style="@style/boss_tab_bottom" />
- <RadioButton
- android:drawableTop="@drawable/radio_newstyle_boss_atme"
- android:id="@+id/radio_button4"
- android:layout_marginTop="2.0dip"
- style="@style/boss_tab_bottom" />
- <RadioButton
- android:drawableTop="@drawable/radio_newstyle_boss_neweibo"
- android:id="@+id/radio_button5"
- android:layout_marginTop="2.0dip"
- style="@style/boss_tab_bottom" />
- </RadioGroup>
- </RelativeLayout>
- </RelativeLayout>
- </TabHost>
后面再记录每个小节出现的问题和解决方案。