android 怎麼給listview新增一個固定表頭以及顯示像table的效果
定義一個樣式一條線
<style name="vertical_layout">
<item name="android:layout_width">1dp</item>
<item name="android:layout_height">fill_parent</item>
<item name="android:background">#dadada</item>
</style>
1.為表頭新建一個layout:a_item.xml(一共設定3個列名)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/a_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:cacheColorHint="#00000000"
android:orientation="horizontal" >
<TextView
android:id="@+id/item1bzrbjzb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:ellipsize="none"
android:gravity="center"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:singleLine="false"
android:textSize="15.0sp" >
</TextView>
<View style="@style/vertical_layout" /> <!-- 一條線 -->
<TextView
android:id="@+id/item2bzrbjzb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:ellipsize="none"
android:gravity="center"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:singleLine="false"
android:text="@string/bzr_km" <!-- 列名-->
android:textColor="@android:color/black"
android:textSize="15.0sp" >
</TextView>
<View style="@style/vertical_layout" /> <!-- 一條線 -->
<TextView
android:id="@+id/item3bzrbjzb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:ellipsize="none"
android:gravity="center"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:singleLine="false"
android:text="@string/bzr_bjqk" <!-- 列名-->
android:textColor="@android:color/black"
android:textSize="15.0sp" >
</TextView>
<View style="@style/vertical_layout" /> <!-- 一條線 -->
<TextView
android:id="@+id/item4bzrbjzb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:ellipsize="none"
android:gravity="center"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:singleLine="false"
android:text="@string/bzr_jfjgl" <!-- 列名-->
android:textColor="@android:color/black"
android:textSize="15.0sp" >
</TextView>
<TextView
android:id="@+id/item6ctj"
android:layout_width="100.0dip"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:ellipsize="none"
android:gravity="center"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:singleLine="false" >
</TextView>
</LinearLayout>
第一個和最後一個textView不給賦值,用於填充螢幕的空白,顯示好看
2.給介面**Activity新建一個main_layout,應用剛才的a_item.xml以及新增一個繼承了listView的view物件HVListView
***
<include layout="@layout/a_item" />
<com.gdtech.znpc.android.view.HVListView
android:id="@android:id/list"
android:background="@android:color/white" android:fastScrollEnabled="true"
android:fadingEdgeLength="0.0sp" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:drawSelectorOnTop="false"
android:divider="#dadada"
android:dividerHeight="1.0dip"
android:cacheColorHint="#00000000">
</com.gdtech.znpc.android.view.HVListView >
******
3.獲取螢幕的解析度 為每個表頭的設定寬度
private DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
private int w = dm.widthPixels / 16; // 當前解析度 寬度 分為16份
獲取a_item裡面的每個textView的id 進行寬度設定
mListView = (HVListView) findViewById(android.R.id.list);
// 設定列頭
mListView.mListHead = (LinearLayout) findViewById(R.id.a_item);
// 設定表頭的寬度
TextView t11 = (TextView) findViewById(R.id.item1bzrbjzb);
TextView t12 = (TextView) findViewById(R.id.item2bzrbjzb);
TextView t13 = (TextView) findViewById(R.id.item3bzrbjzb);
TextView t14 = (TextView) findViewById(R.id.item4bzrbjzb);
//t13.setText("成績");
t11.setWidth(w * 0); //不顯示第一列
t12.setWidth(w * 3);
t13.setWidth(w * 6);
t14.setWidth(w * 6);
4.給HVListView新增介面卡,並設定每列的寬度和表頭對應
class ViewHolderbjzb { // 這個類裡面定義的TextView數量和表頭裡面的TextView要一致
TextView item1bjzb;
TextView item2bjzb;
TextView item3bjzb;
TextView item4bjzb;
}
mAdapter = new DataAdapter1();
mListView.setAdapter(mAdapter);
private class DataAdapter1 extends BaseAdapter {
@Override
public int getCount() {
return hang;// 固定顯示多少行資料
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = mInflater1.inflate(R.layout.bzr_fx_bjzb_head_item,
null);
holder = new ViewHolderbjzb();
holder.item1bjzb = ((TextView) convertView
.findViewById(R.id.item1bzrbjzb));
holder.item2bjzb = ((TextView) convertView
.findViewById(R.id.item2bzrbjzb));
holder.item3bjzb = ((TextView) convertView
.findViewById(R.id.item3bzrbjzb));
holder.item4bjzb = ((TextView)convertView
.findViewById(R.id.item4bzrbjzb));
// holder.item4bjzb=((TextView)
// convertView.findViewById(R.id.item4bjzb));
// holder.item5bjzb=((TextView)
// convertView.findViewById(R.id.item5bjzb));
convertView.setTag(holder);
// 設定表格內容寬度,與表頭對應
holder.item1bjzb.setWidth(w * 0);
holder.item2bjzb.setWidth(w * 3);
holder.item3bjzb.setWidth(w * 6);
holder.item4bjzb.setWidth(w * 6);
holder.item1bjzb.setText("");
holder.item2bjzb.setText("");
holder.item3bjzb.setText("");
holder.item4bjzb.setText("");
// holder.item4bjzb.setText("");
// holder.item5bjzb.setText("");
} else {
holder = (ViewHolderbjzb) convertView.getTag();
}
for (int i = 0; i < listDatas.size(); i++) {
// 顯示列的id數
// holder.item1bjzb.setText((position + 1) + "");
/*
listDatas 就是要顯示的後臺資料
*/
if (position == i) {
Map<String, Object> row = listDatas.get(position);
holder.item1bjzb.setText("用後臺獲取的資料 進行填充就可以"));
holder.item2bjzb.setText("用後臺獲取的資料 進行填充就可以"));
holder.item3bjzb.setText("用後臺獲取的資料 進行填充就可以"));
holder.item4bjzb.setText("用後臺獲取的資料 進行填充就可以"));
}
}
// 設定隔行顏色
if (position % 2 != 0) {
convertView.setBackgroundResource(R.drawable.listview_color_1);
} else {
convertView.setBackgroundResource(R.drawable.listview_color_2);
}
return convertView;
}
相關推薦
android 怎麼給listview新增一個固定表頭以及顯示像table的效果
定義一個樣式一條線 <style name="vertical_layout"> <item name="android:layout_width">1dp</item> <item name
listview新增一個固定表頭 顯示Table效果
定義一個樣式一條線 <style name="vertical_layout"> <item name="Android:layout_width">1dp</item> <item
iOS之給圖片新增一個顏色相框(Swift4.2)
override func viewDidLoad() { super.viewDidLoad() // 給一張圖片新增一個顏色相框 let image
android 給button新增 不同狀態【點選 長按 釋放】下的樣式|異常報錯解決
步驟: 1.在drawable下新建兩個xml檔案,分別對不同狀態下的樣式進行定義。 2.對檔案內容,即btn樣式進行定義 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http:/
1.給棧新增一個獲取最小值的方法(元素為Integer型),要求時間複雜度為O(1)
分析:在資料結構與演算法中,當要求時間複雜度最小時基本都是要犧牲空間複雜度。棧是先進後出,此處要求用棧實現一個獲取最小值的方法且時間複雜度為O(1),首先考慮的方向就是再借助一個棧來實現,這個棧主要用來儲存最小值序列(這個地方可以思考一下為什麼不能用一個變數來儲存最小值)。 下面直接附上程式碼:
Android 給文字新增陰影
<TextView android:id="@+id/tv_title_event" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layou
java給圖片新增文字水印,以及docker容器新增中文字型支援
發現雖然簡單,但是水印內容通過編碼拼接在圖片地址後面,每次訪問都要加上,如果要儲存下來還需要自己存第二遍有水印的圖。可是我們並不需要沒有水印的原圖,於是決定通過程式碼新增,更自由。 程式碼如下: /** * 新增文字水印 * @param inpu
Android 7.1 新增一個設定選項
根據需求,在設定介面新增一個設定選項“USB設定” 1、packages/apps/Settings/AndroidManifest.xml 新增Activity資訊 <!-- UsbDeviceSettings --> <activ
Android之listview新增資料篇
一、ListView: 1、 ListView通常有兩個職責: 1、向佈局填充資料 2、處理選擇點選等操作 2、ListView的建立需要3個元素:
給mysql新增一個自動備份的批處理方式
給MySQL的資料庫添加了一個開機自動備份的批處理檔案,特此分享下原始碼。 rem***********************程式碼開始**************** ********* **** reg add“HKEY_CURRENT_USER \ Software \ Micros
MySql 給表新增一個聯合唯一索引
做專案需要用到聯合唯一 例如,user表中有user_id,user_name兩個欄位,如果不希望有兩條一摸一樣的的user_id和user_name,需要給user表新增兩個欄位的聯合唯一索引:alter table user add unique index(use
Android給TextView新增點選事件
1.介面 首先設定TextView的clickable屬性為true。 可以在佈局檔案中進行設定,比如: <?xml version="1.0" encoding="utf-8"?>
android 給 button 新增邊框及底色
1、以下是設定按鈕的右邊框和底邊框顏色為紅色,邊框大小為3dp,如下圖: 在drawable新建一個 buttonstyle.xml的檔案,內容如下: <?xmlversion="1.0"encoding="UTF-8"?> <layer-
iOS UITableViewController 新增一個固定的不能滾動的控制元件
新增一個button 等寬與檢視的寬度 tryButton = [UIButtonbuttonWithType:UIButtonTypeCustom]; tryButton.frame =CGRectMake(0,self.view.frame.size.heigh
android 給TextView新增下劃線
package com.example.textviewbottomline; import android.app.Activity; import android.graphics.Color; import android.graphics.Paint; import
Android 給TextView新增點選事件
<TextView android:id="@+id/phone" android:clickable="true" --------->設定此屬性 android:layout_marginLeft="10dp
android給listview的item設定高度
在item的layout檔案中,用android:layout_height設定item的高度。執行,高度設定無效。解決辦法: 給item設定minHeight,即可. --------------------------------------- 最近一直糾結於Li
Android 給RecyclerView新增頭部和尾部
之前我在GitHub上開源了一個可以實現RecyclerView列表分組的通用Adapter: 。也在部落格上寫了一篇專門介紹它的實現和使用的文章:《Android 可分組的RecyclerViewAdapter》。有一些朋友在看了我的博文和使用我的開源庫後,會
Android中ListView下拉重新整理上拉載入更多效果實現
在Android開發中,下拉重新整理和上拉載入更多在很多app中都會有用到,下面就是具體的實現的方法。 首先,我們自定義一個RefreshListView來繼承與ListView,下面是程式碼: package com.example.downrefresh; import
Android 解決ListView巢狀GridView、GridView顯示不正常的方法
自定義View,繼承GridView,重寫onMeasure()方法,程式碼如下: public class MyGridView extends GridView { public MyGridView(Context context) {