當前位置:首頁 » 安卓系統 » androidlistview效果

androidlistview效果

發布時間: 2022-08-28 12:38:04

① android中listview的下拉刷新上拉載入是怎麼實現的

這是兩個分開的部分。如果你是新手,先一個一個來。

我只能跟你說一下思路,具體的東西你在網上查查,不行再問我,新手的話慢慢來。

  1. 下拉刷新,獲取listview的下拉時間顯示header,然後調用更新數據的介面就可以了。

  2. 上啦載入,是分頁獲取數據,獲取listview的是否拉到最底,如果拉倒最底,獲取數據,讓後list的數據添加獲取的數據,更新adapter就可以了。


② 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)

③ android listview 每行中 有兩列。 第二列有兩行的效果是怎麼做的 下圖給圖~

點擊listview某項的事件可用這個: myListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View listitem, int position,long a) { } }); 獲取所選行的電話號碼: 不知道樓主給listview綁數據源的時候用的是什麼數據結構,不過肯定可以通過上面點擊事件中的position參數來從數據源中獲取到所選這行的數據,然後再取這行數據的第三列值,就可以把電話號碼取出來。 撥打電話: 取到電話號碼了,那麼只要這樣就可以調用手機的默認撥號程序 startActivity(new Intent(Intent.ACTION_DIAL,Uri.parse("tel:"+"這里寫獲取到的電話號碼")));

④ Android ListView 事件監聽 , 關於ListView選中時顯示的效果怎麼寫呀

public class DemoActivity extends ListActivity{ @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.demo); ListView lv = getListView(); ListAdapter apt = new ArrayAdapter(this, android.R.layout.activity_list_item); setListAdapter(apt); lv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long a) { } }); }}我臨時用eclipse幫你寫的,希望你能看懂! 查看原帖>>

⑤ Android的listview的點擊和滑動效果沖突了

ViewDragHelper.Callback做滑動效果,你是不是在這里屏蔽了onTouch

如果這里重寫了onTouch 你要在onTouch里返回false這樣,事件才能繼續傳遞

還有,你想實現listView item的動畫,或者滑動刪除,左右滑動操作的話,建議你直接用開源框架

我這里給你上傳一份,關於listView的各種動畫,各種控制項,你可以直接用這些源代碼了

⑥ android listview 如何實現這種圓角和按下的效果,送分題又來了,求高手快來拿分

靠布局和一點小邏輯就可以做到,具體就是列表正文其實左右有個Margin值,而上面的透明覆蓋層,左右是抵滿的,這樣一來就很簡單了。


可以看我附件的demo,顏色我沒調好,我很不擅長調顏色。但是效果差不多的。

⑦ android ListView中有某部分要點擊效果,此點擊效果是用selector實現,但在ListView中點擊其他部分也會有效

tvFileNameAndSize.setText(attachFile.getFileName() + "(" + attachFile.getSize() + "K)");/*將文件名與文件大小添加到顯示里*/
v.setTag(attachFile);/*將文件保存到控制項里*/

ImageView ivDelete = (ImageView) v.findViewById(R.id.iv_iccfa_del);

ivDelete.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
View parent = (View) v.getParent();/*得到焦點*/
AttachFile file = (AttachFile) parent.getTag();/*將導入到這個位置的文件導出來*/
mFiles.remove(file);/*從自己的集合里移除它*/
mLlAttachFile.removeView(parent);/*從控制項里將這個焦點所對應的內容刪除*/
}
});
mLlAttachFile.addView(v);
ListView顯示的格式是一個TextView加上一個ImageView,這個就是點擊那個ImageView時刪除這一條記錄的部分代碼,

⑧ Android ListView怎麼取消點擊效果

listview的默認樣式每個item都會有個選擇器(selector),要取消點擊效果就要替換掉這個默認的選擇器,使用listview.setSelector(new ColorDrawable(Color.TRANSPARENT))將選擇器替換成透明的drawable,點擊就不會有高亮的效果了。或者你想自定義一種點擊效果,那就定義好自己selector文件,然後在代碼中用setSelector或者在布局中ListView上用android:listSelector屬性來指定成自己的selector。PS:setSelector(null)是沒用的,還會有默認的點擊效果。

熱點內容
創建郵箱地址伺服器連接錯誤 發布:2025-01-13 09:49:24 瀏覽:723
linux編輯文檔 發布:2025-01-13 09:47:51 瀏覽:435
二手製冷壓縮機 發布:2025-01-13 09:43:59 瀏覽:585
網魚電腦密碼多少 發布:2025-01-13 09:33:46 瀏覽:464
如何取消子賬號密碼 發布:2025-01-13 09:22:41 瀏覽:347
抖音搜索有緩存 發布:2025-01-13 09:17:28 瀏覽:590
c語言字元數組連接 發布:2025-01-13 08:55:11 瀏覽:901
國二c語言編程題目 發布:2025-01-13 08:45:41 瀏覽:285
ipad軟體如何加密 發布:2025-01-13 08:28:59 瀏覽:278
android的文件操作 發布:2025-01-13 08:24:48 瀏覽:173