Android05-UI02布局,自訂控制項,ListView

來源:互聯網
上載者:User

標籤:

1.布局

布局的內部除了放置控制項外,也可以放置布局,通過多層布局的嵌套,我們就能夠完成一些 比較複雜的介面實現 

¨四種基本布局

LinearLayoutRelativeLayoutFrameLayoutTableLayout2.補充知識View所有使用者互動的組件(Widget)的基類一個View對象佔據矩形地區,並負責這個地區內的像素繪製和事件處理。  ViewGroup繼承自View類ViewGroup類是所有布局(layouts)的基類,布局類是不可見的,用於容納其他View類對象並且定義它們的布局屬性。有兩種方式來定義布局:1.使用XML檔案     XML布局檔案       儲存在目錄res/layout       副檔名必須是xml,檔案名稱必須是小寫字母       ADT會對每一個xml布局檔案產生R類的一個變數,例如:main.xml-->R.layout.main       關鍵的API:setContentView()    使用XML方式的優點          將應用程式的介面與應用程式的邏輯行為分離。       你可以在不需要修改和重新編譯原始碼的情況下,來修改和調整程式介面。   布局參數       XML 布局的命名方式:layout_something        例如:layout_width定義了組件的寬度。       組件的布局參數用來告訴容納這個組件的布局這個組件希望怎樣被布置。2.使用Java代碼來編寫(Instantiate layout elements at runtime)

 

LinearLayout 

線性布局將所有它的子組件排列成一列或者一行。預設的排列方向是horizontal(水平).布局參數¨android:layout_gravity水平方向的線性布局中的控制項, android:layout_gravity屬性只在垂直方向上起作用垂直方向的線性布局中的控制項, android:layout_gravity屬性只在水平方向上起作用¨android:layout_weight指示該線性布局的組件需要額外佔據的空間。0表示該組件應該是被壓縮的。否則組件將按比例在屬性大於0組件中來分配額外的空間。

android:orientation="horizontal" 

RelativeLayout容器內的子項目是由其相對於其他子項目或者容器的位置來決定的。

android:layout_alignParentLeft、

android:layout_alignParentTop、

android:layout_alignParentRight、

android:layout_alignParentBottom、

android:layout_centerInParent  

FrameLayout 

FrameLayout 相比於前面兩種布局就簡單太多了,因此它的應用情境也少了很多。這種 布局沒有任何的定位方式,所有的控制項都會擺放在布局的左上方。 

TableLayout 

自訂控制項

方法一建立一個新的布局title.xml在活動布局中使用<include>標籤引用title.xml (只有顯示效果,沒有行為)方法二建立一個LinearLayout的子類TitleLayout,並使用title.xml作為布局在活動布局中引用TitleLayout(既有顯示效果,又有行為) ¨ListViewListView的簡單用法  定製ListView的介面  ListView的點擊事件  提升ListView的運行效率  ListView是Android中最常用的控制項。當需要顯示列表的使用就會使用ListView,例如:手機的連絡人,聊天資訊,查看微博資訊等等使用:n使用ListView顯示一組字串
//activity_main.xml<ListView            android:id="@+id/list_view"            android:layout_width="match_parent"            android:layout_height="match_parent" ></ListView>//使用String類型的數組//調用ArrayAdapter的建構函式來對資料進行封裝public class MainActivity extends Activity {      private String[] data = { "Apple", "Banana", "Orange", "Watermelon", "Pear", "Grape", "Pineapple", "Strawberry", "Cherry", "Mango" };        @Override      protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);              
setContentView(R.layout.activity_main); ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, data); ListView listView = (ListView) findViewById(R.id.list_view); listView.setAdapter(adapter); } }
ArrayAdapter(Context context, int resource, T[] objects)¨context: 內容物件,一般會傳入Activity對象¨resource : 一個包含TextView的布局,一般會使用系統提供的布局資源¨objects:資料數組,如果數組的資料類型不是String,則會調用這個類的toString方法Adapter中文名稱適配器,用來給ListView提供¨資料¨布局資源

提升ListView效率

ngetView方法中有一個convertView參數,可以直接利用之前載入好的布局,從而提升代碼效率

  

Android05-UI02布局,自訂控制項,ListView

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.