原生的SlidingMeum側滑

2021-07-11 18:41:36 字數 2796 閱讀 2016

關於側滑的例子,現在已經應有盡有,裡面基本都是引用了第三方的庫,純原生的很少,今天我帶領各位朋友來寫一下。

按照常理先來看一下例子。

正常顯示狀態

拉開之後的狀態

背景配的不好看,請原諒!

實現的過程

說到實現過程,肯定是自定義控制項了,這個自定義控制項是繼承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 中的側輸出就是將資料流進行分割,而不對流進行複製的一種分流...