• 【Android】知识零碎整理


    zz:使用ListView应该注意的地方

    1)ListView的右边滚动滑块启用方法? 
    很多开发者不知道ListView列表控件的快速滚动滑块是如何启用的,其实辅助滚动滑块只需要一行代码就可以搞定,如果你使用XML布局只需要在ListView节点中加入  android:fastScrollEnabled="true" 这个属性即可,而对于Java代码可以通过myListView.setFastScrollEnabled(true); 来控制启用,参数false为隐藏。 
    还有一点就是当你的滚动内容较小,不到当前ListView的3个屏幕高度时则不会出现这个快速滚动滑块,该方法是AbsListView的基础方法,可以在ListView或GridView等子类中使用快速滚动辅助。

    2) 每個listview都有無效的位置,如第一行的前一行,最後一行的後一行,這個無效的位置是一個常量. 
         ListView.INVALID_POSITION

    3) 有時我們需要在程序中通過點擊按鈕來控制ListView行的選中,這就用到了在程序中如何使用代碼來選擇ListView項. 
             mListView.requestFocusFromTouch(); 
             mListView.setSelection(int index); 
         第一條語句並不是必須的,但是若你ListView項中含有Button,RadioButton,CheckBox等比ListView取得 焦點優先級高的控件時,那麼第一條語句是你必須加的.

    4) 同樣的,若你ListView項中含有Button,RadioButton,CheckBox等比ListView取得 焦點優先級高的控件時,ListView的setOnItemClickListener是不被執行的,這時你需要在你的xml文件中對這些控件添加  android:focusable="false" 注意這條語句要放在xml文件中修改,在代碼中使用是無效的. 

    5)ListView本身有自己的按鍵事件,即你不需要設置方向鍵的標識,按下方向鍵ListView就會有默認的動作,那如何進行控制,編寫自己的onKey呢,你需要在Activity中重寫dispatchKeyEvent(KeyEvent event);方法,在這裡面定義你自己的動作就可以了

    6)ListView 自定义滚动条样式: 

     1 <ListView android:id="@android:id/list" 
     2         android:layout_width="match_parent" 
     3         android:layout_height="0dip" 
     4         android:layout_weight="1" 
     5         android:stackFromBottom="true"//从下开始显示条目 
     6         android:transcriptMode="normal" 
     7         android:fastScrollEnabled="true" 
     8         android:focusable="true" 
     9         android:scrollbarTrackVertical="@drawable/scrollbar_vertical_track" 
    10         android:scrollbarThumbVertical="@drawable/scrollbar_vertical_thumb" 
    11 /> 
    12 //scrollbar_vertical_track,crollbar_vertical_thumb自定义的xml文件,放在Drawable中,track是指长条,thumb是指短条

    7)去掉ListView Selector选种时黄色底纹一闪的效果:

    1 <?xml version="1.0" encoding="utf-8"?>
    2 <shape xmlns:android="http://schemas.android.com/apk/res/android">
    3     <solid android:color="@android:color/transparent"/>
    4     <corners android:radius="0dip" />    
    5 </shape>
    6 //listview.setSelector(R.drawable.thisShape);

    8)ListView几个比较特别的属性 
    首先是stackFromBottom属性,这只该属性之后你做好的列表就会显示你列表的最下面,值为true和false 
    android:stackFromBottom="true"             

    第二是transciptMode属性,需要用ListView或者其它显示大量Items的控件实时跟踪或者查看信息,并且希望最新的条目可以自动滚动到可视范围内。通过设置的控件transcriptMode属性可以将Android平台的控件(支持ScrollBar)自动滑动到最底部。 
    android:transcriptMode="alwaysScroll"    

    第三cacheColorHint属性,很多人希望能够改变一下它的背景,使他能够符合整体的UI设计,改变背景背很简单只需要准备一张图片然后指定属性 android:background="@drawable/bg",不过不要高兴地太早,当你这么做以后,发现背景是变了,但是当你拖动,或者点击list空白位置的时候发现ListItem都变成黑色的了,破坏了整体效果。 
    如果你只是换背景的颜色的话,可以直接指定android:cacheColorHint为你所要的颜色,如果你是用图片做背景的话,那也只要将android:cacheColorHint指定为透明(#00000000)就可以了 

    第四divider属性,该属性作用是每一项之间需要设置一个图片做为间隔,或是去掉item之间的分割线android:divider="@drawable/list_driver"  其中  @drawable/list_driver 是一个图片资源,如果不想显示分割线则只要设置为android:divider="@drawable/@null" 就可以了 

    第五fadingEdge属性,上边和下边有黑色的阴影android:fadingEdge="none" 设置后没有阴影了~ 

    第五scrollbars属性,作用是隐藏listView的滚动条,android:scrollbars="none"与setVerticalScrollBarEnabled(true);的效果是一样的,不活动的时候隐藏,活动的时候也隐藏 

    第六fadeScrollbars属性,android:fadeScrollbars="true"  配置ListView布局的时候,设置这个属性为true就可以实现滚动条的自动隐藏和显示。

    9)如何让ListView中TextView的字体颜色跟随焦点的变化? 
    我们通常需要ListView中某一项选中时,他的字体颜色和原来的不一样。 如何设置字体的颜色呢? 在布局文件中TextColor一项来设置颜色,但是不是只设置一种颜色,而是在不同的条件下设置不同的颜色: 下面是个例子:

    1 <?xml version="1.0" encoding="utf-8" ?>
    2 <selector xmlns:android="http://schemas.android.com/apk/res/android">
    3 <item android:state_enabled="false" android:color="@color/orange"></item>
    4 <item android:state_window_focused="false" android:color="@color/orange"></item>
    5 <item android:state_pressed="true" android:color="@color/white"></item>
    6 <item android:state_selected="true" android:color="@color/white"></item>
    7 <item android:color="@color/orange"></item>
    8 </selector> 
    9 在获取焦点或者选中的情况下设置为白色,其他情况设置为橘黄色。
  • 相关阅读:
    vue组件上绑定原生事件
    vue中sync的使用原来这么简单
    vscode快捷键
    justify-content: space-between能够对齐的解决办法
    day_01:__all__、__init__、推导式
    单元测试框架pytest
    ELK从入门到实战
    HTB::Return
    Codeforces Round #752 (Div. 2) ABCD
    动态神经网络综述阅读笔记
  • 原文地址:https://www.cnblogs.com/lqminn/p/2935747.html
Copyright © 2020-2023  润新知