真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ListView+Adapter適配器的使用與Listview常見(jiàn)的UI顯示問(wèn)題

一.ListView的事件:

創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、成都網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)三明,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):028-86922220

1.setOnItemClickListener()點(diǎn)擊事件

ListView+Adapter適配器的使用與Listview常見(jiàn)的UI顯示問(wèn)題

     listview.setOnItemClickListener(new OnItemClickListener() {
            @Override            public void onItemClick(AdapterView parent, View view,                    int position, long id) {
                 Toast.makeText(ArrayAdapterActivity.this, "你點(diǎn)擊了第"+(position+1)+"項(xiàng)", Toast.LENGTH_SHORT).show();
            }
        });

ListView+Adapter適配器的使用與Listview常見(jiàn)的UI顯示問(wèn)題

 

2.setOnItemLongClickListener()長(zhǎng)按事件,設(shè)置“長(zhǎng)按”listview某一項(xiàng)的監(jiān)聽(tīng)事件。

ListView+Adapter適配器的使用與Listview常見(jiàn)的UI顯示問(wèn)題

    listview.setOnItemLongClickListener( OnItemLongClickListener() {  
            @Override  
              onItemLongClick(AdapterView parent, View view,  
                     position,  id) {
          Toast.makeText(ArrayAdapterActivity., "你了第"+(position+1)+"項(xiàng)", Toast.LENGTH_SHORT).show();
           ; 
       } 
    });

ListView+Adapter適配器的使用與Listview常見(jiàn)的UI顯示問(wèn)題

 二.ListView由于item項(xiàng)中包含某些可以搶焦點(diǎn)的控件導(dǎo)致無(wú)法獲取焦點(diǎn)問(wèn)題

(注意:ListView的項(xiàng)根元素layout的寬要設(shè)置成android:layout_width="fill_parent",否則可能會(huì)因?yàn)轫?xiàng)內(nèi)容太短,導(dǎo)致點(diǎn)擊時(shí)獲取不到焦點(diǎn))

1>.如果你自定義ListView的項(xiàng)中包含能獲得焦點(diǎn)的子控件(RadioGroup、Button、CheckBox、DatePicker、ImageButton、ScrollView、SeekBar、EditText、ToggleButton、RatingBar等)的話(huà),默認(rèn)焦點(diǎn)會(huì)被交給這些子控件,而ListView的項(xiàng)能被選中的基礎(chǔ)是它能獲取焦點(diǎn),所以項(xiàng)中的這些子控件的焦點(diǎn)必須為false,這樣ListView的項(xiàng)才能獲取onItemLongClick事件與onItemClick事件

解決辦法(以Button為例):

在布局文件中,在項(xiàng)的layout布局文件根元素中加入android:descendantFocusability="blocksDescendants"如:

ListView+Adapter適配器的使用與Listview常見(jiàn)的UI顯示問(wèn)題


    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:descendantFocusability="blocksDescendants" >

            android:id="@+id/header"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

            android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@id/header"
        android:layout_toRightOf="@id/header" />

            android:id="@+id/age"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/name"
        android:layout_below="@id/name" />

            android:id="@+id/delete"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="@string/deleteselect" />

ListView+Adapter適配器的使用與Listview常見(jiàn)的UI顯示問(wèn)題

如果layout是程序動(dòng)態(tài)生成的,則調(diào)用

layout.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);

2>.如果你自定義ListView的項(xiàng)中包含能獲得焦點(diǎn)的子控件GridView的話(huà),默認(rèn)焦點(diǎn)會(huì)被交給這些子控件,而ListView的項(xiàng)能被選中的基礎(chǔ)是它能獲取焦點(diǎn),所以項(xiàng)中的這些子控件的焦點(diǎn)必須為false,這樣ListView的項(xiàng)才能獲取onItemLongClick事件與onItemClick事件

解決辦法(以Button為例): 

1.在布局文件中,在項(xiàng)的layout布局文件根元素中加入

android:descendantFocusability="blocksDescendants"

2.程序中給GridView進(jìn)行如下設(shè)置

gridView.setClickable(false);
gridView.setPressed(false);
gridView.setEnabled(false);

 三.ListView的UI顯示中常見(jiàn)問(wèn)題及解決辦法

1>如果需求是listview點(diǎn)擊時(shí),item無(wú)背景變色效果

步驟:

1.drawable文件夾中新建timer_list_selector.xml內(nèi)容如下


    

2.values文件夾中新建colors.xml內(nèi)容如下


    #50000000

3.布局文件中給listview加入如下屬性

android:listSelector="@drawable/timer_list_selector"

2>listview設(shè)置分割線(xiàn)Divider樣式,布局文件給listview加入如下屬性(已分隔符為顏色為例)

android:divider屬性用來(lái)設(shè)置分割線(xiàn)顏色(或圖片),當(dāng)設(shè)置為#00000000時(shí)表示item之間無(wú)間隙;

通過(guò)android:dividerHeight屬性設(shè)置分割線(xiàn)高度

    android:divider="#ff999999"
       android:dividerHeight="1sp"

3>UI展現(xiàn)時(shí)常見(jiàn)問(wèn)題

問(wèn)題1:listview設(shè)置背景,拖動(dòng)listview時(shí)顯示黑色,只有拖動(dòng)完才會(huì)顯示我們?cè)O(shè)置的背景顏色或圖片
  產(chǎn)生原因:listview的背景是固定不變的,默認(rèn)Listview的每項(xiàng)的背景是透明的,拖動(dòng)滾動(dòng)條的過(guò)程中需要實(shí)時(shí)將每個(gè)項(xiàng)的顯示內(nèi)容跟背景進(jìn)行混合運(yùn)算,android系統(tǒng)為了優(yōu)化這個(gè)過(guò)程,使用了android:cacheColorHint屬性,在黑色背景下默認(rèn)顏色為#191919,所以出現(xiàn)了上面的黑色顯示問(wèn)題
  解決辦法:(根據(jù)需求而定)

1.如果只換背景顏色:將android:cacheColorHint設(shè)置成和背景顏色一樣或android:scrollingCache="false"如下      

      android:cacheColorHint="#ff00ff00"
      android:background="#ff00ff00"

        或

      android:scrollingCache="false"
          android:background="#ff00ff00"

2.如果用圖片做背景:將android:cacheColorHint設(shè)為#00000000變?yōu)橥该骰騛ndroid:scrollingCache="false"即可如下
           

      android:cacheColorHint="#00000000"
          android:background="@drawable/ic_launcher"

        或           

      android:scrollingCache="false"
          android:background="@drawable/ic_launcher"

問(wèn)題2:listview上面或下面有黑色陰影

解決辦法:布局文件中給listview加入android:fadingEdge="none" 
  UI總結(jié):

綜上問(wèn)題得到最終的布局為(帶分割線(xiàn)+背景色)
     

ListView+Adapter適配器的使用與Listview常見(jiàn)的UI顯示問(wèn)題

ListView+Adapter適配器的使用與Listview常見(jiàn)的UI顯示問(wèn)題

 

 

 

 


網(wǎng)站名稱(chēng):ListView+Adapter適配器的使用與Listview常見(jiàn)的UI顯示問(wèn)題
轉(zhuǎn)載源于:http://weahome.cn/article/jdhsso.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部