首先我們看下效果圖
這是最基本的橫向滑動(dòng)菜單
有人會(huì)說應(yīng)該不會(huì)適配铃在,所以我加了AutoLayout做了適配风皿,首先我們?cè)贏pplication的onCreate() 方法中對(duì)AutoLayout操作袭艺;
public? ? class? ?MainAppliction? ?extends? ? ? Application{
@Override
public? ?void? ?onCreate() {
super.onCreate();
//autoLayout初始化
AutoLayoutConifg.getInstance().useDeviceSize().init(this);
? ? }
}
然后在AndroidManifest.xml中引用MainAppliction,并且設(shè)置
<!--outoLayout分辨率-->
android:name="design_width"
android:value="750"/>
android:name="design_height"
android:value="1334"/>
最后镀梭,我們?cè)贏ctivity里面操作了
horizontalBg.setAdapter(getNewBean(),newOnEditAttributeLstener() {
/**
? ? ? ? ? ? *
*@return0虹茶、不設(shè)置背景逝薪、1設(shè)置背景顏色、2蝴罪、設(shè)置背景圖片
*/
@Override
public? int? getViewType() {
? ? ? ?return2;
? ? ? ? ? ? }
@Override
public int? getVewHeight() {
? ? ?return? 80;//設(shè)置菜單欄的高度
? ? ? ? ? ? }
@Override
public boolean? ?isAdjustModel() {
? ? ? ? ? return? ? true;//是否自適應(yīng)
? ? ? ? ? ? }
@Override
public? int? ? ?getSelectBgRes() {
? ? ? return? ?R.drawable.shape_bg_red;//設(shè)置選中item的背景
? ? ? ? ? ? }
@Override
public? int? ? getNotSelectBgRes() {
? ? ? return? 0;//設(shè)置未選中item的背景
? ? ? ? ? ? }
@Override
public? ?int? ?getSelectTextColor() {
? ? ? ? return? ? R.color.colorWrite;//設(shè)置選中item 字體顏色
? ? ? ? ? ? }
@Override
public? ?int? getNotSelectTextColor() {
? ? ? ? return? ?R.color.textMain;//設(shè)置未選中item 字體顏色
? ? ? ? ? ? }
@Override
public? boolean? ?isShowLine() {
? ? ? return? ?false;//隱藏下劃線
? ? ? ? ? ? }
? ? ? ? });
另外附上所有item樣式方法董济,這些屬性應(yīng)該夠基本的Menu菜單使用
public interface? ?OnEditAttribute{
/**
? ? * 是否自適應(yīng)
*@return
*/
boolean? isAdjustModel();
/*** ======設(shè)置View屬性? ? ? ********/
/**
? ? *獲得View的屬性類型
*@return
*/
int? ? getViewType();
/**
? ? * 改變view高度
*@return
*/
int? ? getVewHeight();
/**
? ? * 改變view高度
*@return
*/
int? getVewWidth();
/**
? ? * 獲取選中的背景顏色
*@return
*/
int? ?getSelectBgColor();
/**
? ? * 獲取未選中的背景顏色
*@return
*/
int? getNotSelectBgColor();
/**
? ? * 獲取選中的背景顏色
*@return
*/
int? getSelectBgRes();
/**
? ? * 獲取未選中的背景顏色
*@return
*/
int? ?getNotSelectBgRes();
/*** ======設(shè)置Item屬性? ? ? ********/
/**
? ? *獲取選中的字體顏色
*@return
*/
int? getSelectTextColor();
/**
? ? *獲取未選中的字體顏色
*@return
*/
int? getNotSelectTextColor();
/**
? ? * 獲取字體大小
*@return
*/
int? getTextSize();
/**
? ? * 獲取Item高度
*@return
*/
int? getItemHeight();
/*** ======設(shè)置bottom屬性? ? ? ********/
/**
? ? *獲得底部下劃線的屬性類型
*@return
*/
int? getBottomViewType();
/**
? ? * 是否顯示下劃線
*@return
*/
boolean? isShowLine();
/**
? ? * 改變bottom下劃線高度
*@return
*/
int? getBottomHeight();
/**
? ? * 改變bottom寬度
*@return
*/
int? getBottomWidth();
/**
? ? * 設(shè)置底部下劃線背景顏色
*@return
*/
int? getBottomBackgoundColor();
/**
? ? * 設(shè)置底部圖片
*@return
*/
int? getBottomDrawable();
}
也許有人會(huì)說UI給了奇葩的menu菜單怎么辦,不要慌要门,這里還可以自定義Item布局
代碼也是非常簡(jiǎn)單的虏肾,紅色小框框的是你自己寫的Item布局,黑色小框框是你的Item數(shù)據(jù)欢搜;紅色大框框是你的點(diǎn)擊事件
除此之外封豪,你還可以寫橫向滾動(dòng)器