導航:首頁 > 操作系統 > androidlistview固定頭部

androidlistview固定頭部

發布時間:2022-09-24 06:43:01

android 怎麼給listview添加一個固定表頭以及顯示像table的效果

你是的意思是在listView的每一項里都加一個固定的按鈕或圖片嗎,那就將它寫到一個xml中,然後inflate到listView中,這樣listView的每一項的布局就都是xml中的布局了。

Ⅱ android實現listview向上滑動時置頂不動和頂部圖片隱藏

其實頂部的圖片和置頂不動的部分是在ListView外面的一個布局,給ListView設置一個高度相同的Header,在ListView滑動時,通過設置translationY來將圖片和置頂所在的布局往上移動。

Ⅲ android中listview的頭部可以用 butterknife.inject嗎

1..Adapter的getView方法裡面convertView沒有使用setTag和getTag方式; 2.在getView方法裡面ViewHolder初始化後的賦值或者是多個控制項的顯示狀態和背景的顯示沒有優化好,抑或是裡面含有復雜的計算和耗時操作; 3.在getView方法裡面 inflate的row 嵌套太深(布局過於復雜)或者是布局裡面有大圖片或者背景所致; 4.Adapter多餘或者不合理的notifySetDataChanged; 5.listview 被多層嵌套,多次的onMessure導致卡頓,如果多層嵌套無法避免,建議把listview的高和寬設置為fill_parent. 如果是代碼繼承的listview,那麼也請你別忘記為你的繼承類添加上LayoutPrams,注意高和寬都是fill_parent的;

Ⅳ 安卓中如何設置listview 最後一個item距頂部高度,就是最後一個間距和其他不一樣

這個只是單個item實現的功能啊。 對於單個item,新建一個ViewHolder類來處理此item的事件。 左上角是一個標題,用單行的textView。內容就用一個固定高度的textView。 右下角就是一個imageButton. 建議此Item用RelativeLayout布局。 在點擊imageButton的時候觸發一個事件,設置內容textView的高度為自適應,然後imageButton的圖片換一個,刷新界面。 收起的時候同理。

Ⅳ 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 水平和垂直滾動的代碼,我沒有按照他們說的做(以前沒搜到 O(∩_∩)O~) 我採用的是添加HorizontalScrollView
Java代碼
1. < ScrollView android:id="@+id/ScrollView01"
2. android:layout_height="300px"
3. android:layout_x="16px"
4. android:layout_y="84px"
5. android:layout_width="290px"
6. android:scrollbars="horizontal|vertical">
7. < HorizontalScrollView android:id="@+id/HorizontalScrollView01"
8. android:layout_height="fill_parent"
9. android:layout_width="wrap_content">
10. < LinearLayout android:id="@+id/LinearLayout02"
11. android:layout_width="wrap_content"
12. android:orientation="vertical"
13. android:layout_height="fill_parent">
14. < ListView android:id="@+id/listview"
15. android:layout_height="300px"
16. android:layout_width="fill_parent">
17. < /ListView>
18. < /LinearLayout>
19. < /HorizontalScrollView>
20. < /ScrollView>

我有一個Listview,因為橫屏和豎屏原因,內容較多,豎屏會出現有些數據無法顯示
於是讓Listview在橫向上可以滾動。
解決的辦法是,用HorizontalScrollView包裝Listview,這樣,當豎屏時,就會出現橫向滾動條。
<HorizontalScrollView
Android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true">
<ListView android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:background="@drawable/email_box"
android:id="@+id/advice_main_list_id"
android:padding="5dip"/>
</HorizontalScrollView>

但此時又出現了另一個問題,加上HorizontalScrollView後,雖然我已經設了Listview的寬度是fill_parent。但當內容較少時,Listview還是根據內容自適應寬度,不能滿屏。
此時,需要設置一個屬性就能解決問題了。設置HorizontalScrollView的android:fillViewport="true"。也就是設置是否將HorizontalScrollView的內容寬度拉伸以適應視口(viewport)

Ⅵ 安卓listview怎麼固定第一列

你將你的list用一個父容器,例如Linearlayout包含起來,然後將這個父容器的高度設為固定(例如大約你的list一行的4倍高度),這樣不就行了?

Ⅶ ListView有三個固定的item該怎麼實現

公司要求做一個gridview形式的三級菜單,要求菜單的每第一級滑動時固定,現在記錄下菜單是怎樣實現的

先上一下最終的效果圖,省得大家迷惘

現在開始說明過程,我使用是一個自定義的PinnedHeaderListView
現在說說PinnedHeaderListView這個如何的使用,這個使用很簡單:

1. 把下載的PinnedHeaderListView放到你的項目中去。

2. 在你的部局中直接使用:

<com.test.pinnedheaderlistview.PinnedHeaderListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"></com.test.pinnedheaderlistview.PinnedHeaderListView>

3. ListView載入adapter還是和常規的一樣使用。

ProctOneMenuAdapter adapter = new ProctOneMenuAdapter(mContext, mList);
listView.setAdapter(adapter);

4. adapter的使用:adapter繼承SectionedBaseAdapter

getItemView是載入你ListView里每個item的視圖;

getSectionHeadView是載入你ListView中固定頭部的視圖;

下面是用法:

public class ProctOneMenuAdapter extends SectionedBaseAdapter {
private Context mContext;
private ArrayList<listbean> mList
private int i = 1;
private View layout;
public ProctOneMenuAdapter(Context mContext, ArrayList<listbean> mList, ) {
this.mContext = mContext;
this.mList = mList;
}
@Override
public Object getItem(int section, int position) {
return null;
}
@Override
public long getItemId(int section, int position) {
return 0;
}
@Override
public int getSectionCount() {
return mList.size(); //固定頭部數據的長度
}
@Override
public int getCountForSection(int section) {
return i; //每固定下面數據的長度
}
@Override
public View getItemView(int section, int position, View convertView, ViewGroup parent) {
return convertView;
}
@Override
public View getSectionHeaderView(int section, View convertView, ViewGroup parent) {
return convertView;
}
public View getLayout() {
return layout;
}
}
以上就可以實現在ListView中固定一個標題了。

閱讀全文

與androidlistview固定頭部相關的資料

熱點內容
華為筆記本電腦怎麼安裝抖音app 瀏覽:410
阿里雲國際版試用的伺服器怎麼搞 瀏覽:895
java正則表達式工具 瀏覽:158
oa伺服器怎麼設置ftp 瀏覽:8
安卓如何安裝obb 瀏覽:440
QQ聊天記錄journal文件夾 瀏覽:118
蘋果公司雲伺服器地址 瀏覽:85
加密記事本手機 瀏覽:437
汽車壓縮機變頻閥 瀏覽:95
域外伺服器是什麼意思 瀏覽:639
大眾點評伺服器怎麼老卡頓 瀏覽:556
javavector與list的區別 瀏覽:316
java初始化類數組 瀏覽:303
java字元串轉換成json對象 瀏覽:648
android非阻塞socket 瀏覽:358
編譯系統概念 瀏覽:452
天眼通app能做什麼 瀏覽:557
魅族手機怎麼加密圖庫 瀏覽:8
rpa編譯器 瀏覽:572
車載雲伺服器記錄 瀏覽:740