1、
/>
android:id="@+id/main_scrolllayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
="@layout/frame_news"/>
="@layout/frame_question"/>
="@layout/frame_tweet" />
="@layout/frame_active" />
="@layout/main_footer"/>
通過include其他的layout拆分了設計
是如何在自定義控制項裡又包含了其他的layout?
android:layout_weight="1"
的作用是指定控制項所佔空間的權重,預設為0,即為怎麼設定怎麼顯示
而設為1說明是平攤控制項,這樣兩個android:layout_width="fill_parent"
的控制項會左右各佔一半空間
2.android:id="@+id/frame_btn_news_lastest"
style="@style/frame_button"
android:text="@string/frame_title_news_lastest"/>
="frame_button">
="android:layout_width">
fill_parentitem>
="android:layout_height">
fill_parentitem>
="android:layout_weight">
1item>
="android:background">
@drawable/frame_button_bgitem>
="android:textcolor">
@color/frame_button_text_lightitem>
style>
>
="true"android:drawable
="@drawable/frame_button_n"/>
="false"android:drawable
="@drawable/frame_button_p"/>
selector>
xmlns:android="">
="true"android:color
="@color/frame_button_text_nor"/>
="false"android:color
="@color/frame_button_text_select"/>
="@color/frame_button_text_nor"/>
selector>
對用一些多次重用的屬性(比如在一組按鈕中),可以設為乙個style供呼叫style="@style/frame_button"
,按鈕的背景可以設定為乙個selector,使其在不同的狀態下有不同的影象,文字的顏色也可以這樣
3.android:layout_height="fill_parent"
android:background="@drawable/frame_button_cutline"
/>
仿tab按鈕之間的分隔效果是通過貼圖實現的
4,工具欄的tab效果是用按鈕模擬出來的(這裡用radiobutton不知道有何深意,但是卻沒用radiobuttongroup)
通過陣列來操作,統一操作
/*** 初始化水平滾動翻頁
*/private
void initpagescroll()
}mscrolllayout.snaptoscreen(pos);
}});
}//設定第一顯示屏
mcursel = 0;
mbuttons[mcursel].setchecked(true);
mscrolllayout.setonviewchangelistener(new scrolllayout.onviewchangelistener()
} else
}break;
case 1://問答
if(lvquestiondata.isempty())
break;
case 2://動彈
if(lvtweetdata.isempty())
break;
case 3://動態
//判斷登入
if(lvactive.getvisibility()==view.visible && lvactivedata.isempty())else
if(lvmsg.getvisibility()==view.visible && lvmsgdata.isempty())
uihelper.showlogindialog(main.this);
break;
}//處理通知資訊
if(bv_atme.isshown())
frameactivebtnonclick(framebtn_active_atme, activelist.catalog_atme, uihelper.listview_action_refresh);
else
if(bv_review.isshown())
frameactivebtnonclick(framebtn_active_comment, activelist.catalog_comment, uihelper.listview_action_refresh);
else
if(bv_message.isshown())
frameactivebtnonclick(framebtn_active_message, 0, uihelper.listview_action_refresh);
else
if(lvactive.getvisibility() == view.visible && lvactivedata.isempty())
loadlvactivedata(curactivecatalog, 0, lvactivehandler, uihelper.listview_action_init);
else
if(lvmsg.getvisibility() == view.visible && lvmsgdata.isempty())
loadlvmsgdata(0, lvmsghandler, uihelper.listview_action_init);
break;
}setcurpoint(viewindex);
}});
}/**
* 設定底部欄當前焦點
* @param index
*/private
void setcurpoint(int index)
else
if(index == 1)
else
if(index == 2)
else
if(index == 3)}。
來自為知筆記(wiz)
開源中國iOS客戶端學習 序
說到這款開源軟體就得提到她的娘家了 開源中國社群 開源中國社群簡介 開源中國 www.oschina.net 成立於2008年8月,是目前中國最大的開源技術社群。傳播開源的理念,推廣開源專案,為 it 開發者提供了乙個發現 使用 並交流開源技術的平台。目前開源中國社群已收錄超過兩萬款開源軟體。開源中...
HDFS客戶端 輸出流原始碼解析
一 建立檔案 1 dfsclient.create 用於建立乙個空檔案,返回乙個輸出流物件。在函式內部,會構造乙個dfsoutputstream,它主要是通過namenode的rpc方法,建立乙個檔案到namenode。2 此建構函式還會計算乙個包中最大可以放的資料。一般來說,資料報最大能達到64k...
四 RabbitMQ 客戶端原始碼之Frame
frame是指amqp協議層面的通訊幀 乙個正式定義的連線資料報 我們來看下frame類中的成員變數有哪些 frame type code public final int type frame channel number,0 65535 public final int channel fram...