關於側滑的例子,現在已經應有盡有,裡面基本都是引用了第三方的庫,純原生的很少,今天我帶領各位朋友來寫一下。
按照常理先來看一下例子。
正常顯示狀態
拉開之後的狀態
背景配的不好看,請原諒!
實現的過程
說到實現過程,肯定是自定義控制項了,這個自定義控制項是繼承horizontalscrollview(水平滑動)。重寫裡面的onmeaure(),onlayout(),ontouchevent()這三個方法。
package com.example.slidingdemo;
import android.content.context;
import android.content.res.typedarray;
import android.util.attributeset;
import android.util.displaymetrics;
import android.util.typedvalue;
import android.view.motionevent;
import android.view.viewgroup;
import android.view.windowmanager;
import android.widget.horizontalscrollview;
import android.widget.linearlayout;
public
class
slidingview
extends
horizontalscrollview
public
slidingview(context context, attributeset attrs)
public
slidingview(context context, attributeset attrs, int defstyle)
} a.recycle();
}@override
protected
void
onmeasure(int widthmeasurespec, int heightmeasurespec)
super.onmeasure(widthmeasurespec, heightmeasurespec);
}@override
protected
void
onlayout(boolean changed, int l, int t, int r, int b)
}/**
* 最關鍵的方法(控制滑動)
*/@override
public
boolean
ontouchevent(motionevent ev) else
break;
}return
super.ontouchevent(ev);}}
對應的屬性檔案為:
<?xml version="1.0" encoding="utf-8"?>
name="rightpadding"
format="dimension" />
name="slidingmenu">
name="rightpadding" />
declare-styleable>
resources>
自定義的部分就是什麼上面的部分,activity中的實現部分
package com.example.slidingdemo;
import android.os.bundle;
import android.view.window;
public
class
mainactivity
extends
activity
}
xml檔案
.example
.slidingdemo
.slidingview xmlns:android=""
xmlns:tools=""
xmlns:shi=""
android:id="@+id/menuview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="none"
shi:rightpadding="100dp"
>
"wrap_content"
android:layout_height="fill_parent"
android:orientation="horizontal">
"@layout/meum"/>
"fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/qq" >
com.example
.slidingdemo
.slidingview>
就是這麼 側滑選單的實現
一般的側滑的實現 viewgroup menu content ontouchevent move viewgroup的 leftmargin up 根據現實選單的寬度,決定將其隱藏或者現實 1 scroller 2 leftmargin thread 今天,繼承 horizontalscrollv...
RecycleView的側拉索引
依賴 compile com.android.support recyclerview v7 23.1.1 compile ca.barrenechea.header decor header decor 0.2.6 support v7.widget recyclerview android id...
flink的側輸出流
在 flink 處理資料流時,我們經常會遇到這樣的情況 在處理乙個資料來源時,往往需要將該源中的不同型別的資料做分割處理,如果使用 filter 運算元對資料來源進行篩選分割的話,勢必會造成資料流的多次複製,造成不必要的效能浪費 flink 中的側輸出就是將資料流進行分割,而不對流進行複製的一種分流...