安卓一年新人,陸陸續續完成一些基礎控件,是進步的首要條件.今天帶來的是一個側邊欄的實現.
此方法也是從之前的一個listview的setselection方法上得到的啟發來完成的.(注意:listview定位到某一個地方就是用的setselection方法).直接上代碼!!
三個關鍵的地方:
1.右側選項欄的高度平分的item的高度對應的item的個數
2.listview的item與選項欄對應的listview的位置
3.LinearLayout的觸摸監聽的位置
基本上只要清楚這三個關鍵點,就很好理解了.用通俗的話再復述一遍:得到listview的A-Z的每一個item的位置position.觸摸LinearLayout對應的位置設在listview到某一位置.
以下是完整代碼:注釋的非常詳細,有任何疑問可以相互交流或百度.
public class MainActivity extends Activity {
private ListView listview;//listview
private LinearLayout linear;//linear加載右側選項欄
private String[] indexStr = { "↑","☆","A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z","#" };//右側選項欄的字段
private String[] indexStr11 = { "↑","☆","A", "B","C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P","Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z","#" };///listview加載的數據標題 與之對應 的選項欄的字段
private int height;// 字體高度
private boolean flag = false;//獲取高度的判斷條件
private HashMap selector;// 存放含有索引字母的位置
private List
兩個xml的文件我也直接粘貼出來了.