自定義控制項 優雅的指示器Indictor

2021-07-15 03:39:38 字數 1484 閱讀 7005

之前寫輪播條或者指示器的時候都是ui圖裡面直接有,這樣的效果並不好,給使用者的體驗比較差,所以閒暇之餘自己寫了個指示器,可以展現出乙個優雅的效果,當手指 當手指滑動的時候小圓點會跟著一點一點的滑動,當手指停下時,小紅點也跟著停下來。原理:在相對布局裡面包裹乙個線性局,乙個展示的view,線性布局裡面在**裡面動態新增的指示器個數,view布局顯示被選中的狀態,讓這兩個子布局重疊,通過監聽viewpager的滑動狀態,來改線被選中的view的的位置,以實現滑動狀態選中的效果。在**裡面動態控制的具體步驟如下:

1、使用layparams給布局裡面新增未選中的小圓點,例如灰色;

2、設定小紅點,表示滑動後的狀態。

3、獲取小圓點之間的距離,這裡要獲取小圓點的距離不能簡單地getwidth,getheiget,這樣是獲取不到的 ,這裡要用到檢視樹來觀察兩個點距離左側螢幕之間的距離,然後求差獲取距離。

4、在監聽viewpager的時候獲取兩者的距離。

一、布局檔案

1、mainactivity布局

<?xml version="1.0" encoding="utf-8"?>

2、指示器狀態的shape

<?xml version="1.0" encoding="utf-8"?>

<?xml version="1.0" encoding="utf-8"?>

二、mainactivity中**

1、初始化指示器

private void initview() ;

mlist = new arraylist<>();

for (int i = 0; i < icons.length; i++)

llpointgroup.addview(point);

}}

2、獲取小紅點之間的距離

private void initpoint() 

});}

3、讓小紅點聯動,監聽viewpager

private void initscrolllisten() 

//當頁面被選擇

@override

public void onpageselected(int position)

//當頁面狀態改變的時候

@override

public void onpagescrollstatechanged(int state)

});}

微信小程式之swiper元件 自定義指示器樣式

1.首先,需要在自定義的swiper元件外用乙個父標籤將該元件包裹起來,並賦予其類名。components homebanner homebanner.wxml swiper autoplay interval duration circular 1111 swiper item 2222 swip...

自定義控制項 二 安裝整合自定義的控制項

本章介紹如何把前一章建立的控制項安裝整合到qtcreator中,使得自己編寫的控制項也能像普通控制項一樣使用。把上一章編譯生成的hlabelplugin.dll libhlabelplugin.a 複製到c qt 4.8.2 plugins designer 即qtsdk的安裝目錄 中,重新開啟qt...

自定義控制項的拖動

自定義控制項的拖動 新增事件 this.mouseup new system.windows.forms.mouseeventhandler this.dragend this.mousemove new system.windows.forms.mouseeventhandler this.dra...