別人的好的東西,就應該拿過來借鑒,並改進,我想這就是拿來主義
我畫圖不好,其實我很想用畫圖的方式來說明一切,因為通俗簡單的就是最好的
首先是思維導圖...這個思維導圖,因為只能看界面,得不到源代碼,所以通過畫圖的方式來分析界面以及功能
這是主頁的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>
後面再記錄每個小節出現的問題和解決方案。
Android新浪微博-項目整理總結 一[創建新項目] http://www.linuxidc.com/Linux/2011-12/50137.htm