Android語言開發第二章筆記

PS:資源文件名字不能為大寫

webView ?加載網頁 ? ??ListView ?顯示列表 ? ?GridView ?顯示表格式列表 ? ?ScrollView 內容可滾動視圖SufaceView ?非常重要的繪圖容器


五大布局

1.Linearlayout ?線性布局* ?orientation 排列方向 ? ?子控件有weight——比重(10為基準)

2.RelativeLayout ?相對布局* ?子控件有alignParent——控制控件位置(左右頂部底部等) ??

根據控件id利用layout_above(top、toLeftOf等)將控件移位在id控件周圍/alignleft表示與id控件左側平行 ?

?marginLeft(top、right)——上邊距和下邊距 ? ? ? ?padding——內邊距

3.FrameLayout ?幀布局* ? ?相較于立體,相互疊加,但不覆蓋

4.AbsoluteLayout 絕對布局 ?絕對坐標,不適用與Android

5.TableLayout ?表格布局 ? TableRow——每一行中存在很多列


有關布局

1.疊加 LinearLayout 布局

2.如何減少布局層次(最好不超過10層)——利用相對布局來減少線性布局的層數

3.學會利用控件組合

4.布局如何引用相同部分

? ? ? ? ? ?<include/>引用相同布局文件? 如:<include layout="@layout/activity"/>

? ? ? ? ? ? <merge/>減少視圖層級

? ? ? ? ? ?<ViewStub/>需要時才加載

5如何優化布局?

? ? ? ? 減少層次

? ? ? ? 刪除無用布局

? ? ? ? 布局結構要清晰

? ? ? ? 選擇合適的布局

PS:小技巧

? ? ?不要嵌套多個使用layout_weight屬性的Linearlayout

? ? ?Android lint ? 刪除無用布局、工具等

? ? ?HierarchyViewer 分析所有層級


ListView(容器、數據、視圖)

快捷鍵:shift+F6 重置相關代碼

? ? ? ? ? ? ?重構 Refactor—Extract—Field?

? ? mPhoneBookListView.setAdapter ?適配器進行綁定


? ? getCount 有多少條數據

? ? getItem ?返回某一條數據對象

? ? getItemId

? ? getView 返回一個視圖(位置、這個視圖、屬于誰)


android:listSelector="@android:color/transparent"

item被點擊時的背景顏色

android:scrollingCache="false"

android:cacheColorHint="#00000000"

滾動緩存


利用一個列表來改造ListView

private List<UserInfo> mUserInfos=new ArrayList<>();

userInfos.add(new UserInfo("XXX",21));——塞入數據

點擊事件(長按)


通知數據更新

phoneBookAdapter.notifyDataSetChanged();

創建一個點擊事件——重新建立一組新數據來替換老的數據并刷新界面。


常用屬性及方法

listSelector 選中時的背景 ?scrollingCache 滑動時緩存的顏色 cacheColorHint 緩存顏色值 fastScrollEnabled是否允許快速滾動

addHeaderView ?addFooterView 添加頭尾視圖


GridView與ScrollView

1.與ListView的相似和區別

——相似:GridView extends AbsListView

? ? ? ? ? ? ? ? ListView extends AbsListView

adapter、數據、點擊事件、刷新都一樣

——區別:樣式(宮格式)

2.visibility 可見性——gone隱藏 ? ? visible可見 ? invisible不可見

columnWidth 寬度 ? ?horizontalSpacing 橫向空間?

3.scrollview 內容區滾動

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容