用ListView簡單實現滑動列表
ListView是android開發者最常用的控制元件。由於手機的螢幕幅度有限,在某些情況下無法一次性的把全部內容顯示到手機螢幕上,所以就需要用到ListView控制元件。
1、定製ListView控制元件,在很多情況下,為了開發需要,我們需要自己去定製ListView控制元件。目的是顯示更加豐富的內容。
首先新建一個XML檔案
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/list_view" />
注意:LinearLayout表示線性佈局,還有RelativeLayout佈局方式,GridLayout佈局方式。這裡就不作一一解釋。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<ImageView
android:id ="@+id/post_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id = "@+id/post_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="20dp" />
</LinearLayout>
註釋:
1、match_parent表示當前控制元件的大小由父佈局控制;wrap_content表示由當前控制元件內容的大小來控制控制控制元件的大小。
2、android:gravity 指定了文字的對齊方式,可選值為top、bottom、left、right和center。
public class MainActivity extends Activity {
private List<Post> postList = new ArrayList<Post>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init(); //初始化
PostAdapter adapter = new PostAdapter (MainActivity.this,
R.layout.post_item, postList); //新增介面卡
ListView listView = (ListView)this.findViewById(R.id.list_view);
listView.setAdapter(adapter);
}
//R.layout.post_item表示控制元件需要顯示的樣式,可以自己定義一個XML檔案,也可以呼叫系統的自帶的樣式,但是一般情況下建議自己定義一個樣式。
private void init() { //定義初始化函式
for(int i = 1; i < 20; i++) {
Post imgae1 = new Post("我的釋出", R.drawable.message2);
postList.add(imgae1);
Post imgae2 = new Post("我要釋出", R.drawable.message);
postList.add(imgae2);
}
}
private class Post {
private String name;
private int imageId;
public Post(String name, int imageId) {
this.name = name;
this.imageId = imageId;
}
public String getName() {
return name;
}
public int getimageId() {
return imageId;
}
}
private class PostAdapter extends ArrayAdapter<Post> {
private int resourcedId;
public PostAdapter(Context context, int textViewResourceId, List<Post> objects) {
super(context, textViewResourceId,objects);
resourcedId = textViewResourceId;
}
public View getView(int position, View convertView, ViewGroup parent) {
Post post = getItem(position);
View view = LayoutInflater.from(getContext()).inflate(resourcedId, parent, false);
ImageView postImage = (ImageView)view.findViewById(R.id.post_image);
TextView postText = (TextView)view.findViewById(R.id.post_text);
postImage.setImageResource(post.getimageId()); //雖然定義了XML檔案,但是可以同程式碼進行插入圖片
postText.setText(post.getName());
return view;
}
}
ArrayAdapter的引數說明:
第一個引數:context上下文物件
第二個引數:每一個item的樣式,可以使用系統提供,也可以自定義就是一個TextView
第三個引數:資料來源,要顯示的資料
系統提供的item的樣式,可以試一試
simple_list_item1:單獨的一行文字框
simple_list_item2:有兩個文字框組成
simple_list_item_checked每項都是由一個已選中的列表項
simple_list_item_multiple_choice:都帶有一個核取方塊
simple_list_item_single_choice:都帶有一個單選框
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
——————————————————————————————————
相關文章
- html裡列表滑動刪除的實現如此簡單HTML
- Flutter 滑動列表隱藏頭部 ListView+TabBar懸浮的實現FlutterViewtabBar
- 使用 flutter 的ListView實現滾動列表FlutterView
- jquery 實現滑動條的簡單驗證jQuery
- 使用 ActionScript 實現簡單滑動驗證碼識別
- 簡單幾步實現滑動驗證碼(後端驗證)後端
- 簡單介紹android實現可以滑動的平滑曲線圖Android
- 直播原始碼,實現內容列表的豎向滑動原始碼
- 超簡單實現iOS列表的索引功能iOS索引
- iOS 實現簡單的列表預載入iOS
- (十)如果實現滑動展示選單效果
- HarmonyOS 與 ArkTS | ForEach 迴圈渲染 + List 實現滑動影片列表
- 簡單介紹SpringMVC RESTFul實現列表功能SpringMVCREST
- android開發(3):列表listview的實現 | 下拉重新整理AndroidView
- ItemTouchHelper實現可拖拽和側滑的列表
- 小程式 — 實現左滑刪除效果(列表)③
- css3實現側邊滑動選單CSSS3
- 函式節流實現滑動下拉選單函式
- 微信小程式-能左右滑動的訂單列表微信小程式
- ListView 與 RecyclerView 簡單對比View
- QT - 13.1.1 ListView 的簡單使用QTView
- uni-app 實現滑動列表(slider)頁面效果 完整程式碼示例APPIDE
- Java用UDP實現簡單聊天JavaUDP
- 使用canvas實現簡單動畫Canvas動畫
- 解決Flutter的ListView巢狀ListView滑動衝突以及無限高度問題FlutterView巢狀
- 聊天平臺原始碼,簡單使用 禁止滑動和設定滑動方向原始碼
- Flutter的ListView(靜態列表)FlutterView
- 用natapp簡單實現內網穿透APP內網穿透
- 讓動畫實現更簡單,Flutter 動畫簡易教程!動畫Flutter
- 直播系統搭建,簡單實現Android應用的啟動頁Android
- 簡單介紹Pytorch實現WGAN用於動漫頭像生成PyTorch
- Android 列表(ListView、RecyclerView)不斷重新整理最佳實踐AndroidView
- 用trait實現簡單的依賴注入AI依賴注入
- 用 JavaScript 實現簡單拼圖遊戲JavaScript遊戲
- 用go實現簡單的氣泡排序Go排序
- Vue+Electron實現簡單桌面應用Vue
- Android應用加固的簡單實現方案Android
- 用 go 實現一個簡單的 mvcGoMVC