<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 利用ViewPager+Fragment+slidingmenu側滑組件實(shí)現

利用ViewPager+Fragment+slidingmenu側滑組件實(shí)現

作者: 時(shí)間:2016-10-29 來(lái)源:網(wǎng)絡(luò ) 收藏

pager=(ViewPager) findViewById(R.id.pager);//初始化控件

fragments=new ArrayList();//初始化數據

fragments.add(new ActivityFragment());

fragments.add(new JobFragment());

fragments.add(new FriendFragment());

}

/**

* 初始化ViewPager

*/

private void initViewPager() {

// TODO Auto-generated method stub

mAdapter=new MyViewPagerAdapter(getSupportFragmentManager(), fragments);

pager.setAdapter(mAdapter);

pager.setOnPageChangeListener(this);

pager.setCurrentItem(0);//設置成當前第一個(gè)

}

/**

* OnPageChangeListener的接口函數

*/

@Override

public void onPageSelected(int arg0) {

title.get(arg0).setChecked(true);//保持頁(yè)面跟按鈕的聯(lián)動(dòng)

//下面這個(gè)條件語(yǔ)句里面的是針對側滑效果的

if(arg0==0){

// 如果當前是第一頁(yè),那么設置觸摸屏幕的模式為全屏模式

sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//設置成全屏響應

}else {

// 如果不是第一頁(yè),設置觸摸屏幕的模式為邊緣60px的地方

sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);

}

}

以上基本配置好了ViewPager組件,運行起來(lái)3個(gè)Fragment頁(yè)面可以自由滑動(dòng)了,但是下面的三個(gè)button還沒(méi)有設置監聽(tīng),所以viewpager切換的時(shí)候不會(huì )跟著(zhù)切換,點(diǎn)擊也不會(huì )有響應。接下來(lái)要做的就是在onCreate()里面初始化RadioButton,并給它設置OnClickListener監聽(tīng)點(diǎn)擊事件:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

/**

* 初始化幾個(gè)用來(lái)顯示title的RadioButton

*/

private void initTitle() {

title.add((RadioButton) findViewById(R.id.title1));//三個(gè)title標簽

title.add((RadioButton) findViewById(R.id.title2));

title.add((RadioButton) findViewById(R.id.title3));

title.get(0).setOnClickListener(new MyOnClickListener(0));//設置響應

title.get(1).setOnClickListener(new MyOnClickListener(1));

title.get(2).setOnClickListener(new MyOnClickListener(2));

}

/**

* 重寫(xiě)OnClickListener的響應函數,主要目的就是實(shí)現點(diǎn)擊title時(shí),pager會(huì )跟著(zhù)響應切換

* @author llb

*/

private class MyOnClickListener implements OnClickListener{

private int index;

public MyOnClickListener(int index){

this.index=index;

}

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

pager.setCurrentItem(index);//把viewpager的視圖切過(guò)去,實(shí)現title跟pager的聯(lián)動(dòng)

title.get(index).setChecked(true);//設置被選中,否則布局里面的背景不會(huì )切換

}

}

最后就是實(shí)現側滑出左邊頁(yè)面的效果,這里使用了開(kāi)源組件SlidingMenu,具體的使用方法可百度or查看源代碼。SlidingMenu組件重寫(xiě)了Activity、FragmentActivity、RelativeLayout等,要實(shí)現側滑效果,可以把主函數繼承的FragmentActivity改成SlidingFragmentActivity,也可以去在xml布局文件里面直接設置。這個(gè)demo里面采用的是繼承SlidingFragmentActivity類(lèi),主要的初始化代碼如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

/**

* 初始化開(kāi)源組件SlidingMenu

*/

private void initSlidingMenu() {

// 實(shí)例化滑動(dòng)菜單對象

SlidingMenu sm = getSlidingMenu();

setContentView(R.layout.activity_main);//設置當前的視圖

setBehindContentView(R.layout.left);//設置左頁(yè)視圖

sm.setMode(SlidingMenu.LEFT);

// 設置滑動(dòng)陰影的寬度

// sm.setShadowWidthRes(R.dimen.shadow_width);

// 設置滑動(dòng)陰影的圖像資源

// sm.setShadowDrawable(R.drawable.shadow);

// 設置滑動(dòng)菜單視圖的寬度

// sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);

// 設置漸入漸出效果的值

sm.setFadeDegree(0.35f);

// 設置觸摸屏幕的模式

sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);

// sm.setTouchModeBehind(SlidingMenu.TOUCHMODE_FULLSCREEN);//設置左頁(yè)的響應范圍

sm.setTouchmodeMarginThreshold(60);//這個(gè)設置的是隔屏幕邊緣多遠開(kāi)始響應

// sm.setBehindOffset(50);//設置左頁(yè)距離屏幕右邊緣的距離,右頁(yè)會(huì )補上

WindowManager wManager=(WindowManager) getSystemService(Context.WINDOW_SERVICE);

screenWidth=wManager.getDefaultDisplay().getWidth();//獲取屏幕的寬度

sm.setBehindWidth((int) (screenWidth*0.8));//設置左頁(yè)的寬度

}

最后附上其中一個(gè)Fragment的示例代碼:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18



關(guān)鍵詞: android

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>