Android使用fragment實(shí)現(xiàn)左側(cè)導(dǎo)航
使用簡(jiǎn)單的fragment實(shí)現(xiàn)左側(cè)導(dǎo)航,供大家參考,具體內(nèi)容如下
先上效果圖:

MainActivity.java
public class MainActivity extends FragmentActivity {
// private Handler handler;
private ViewPager fragmentViewPager;
private ListView leftListView;
private List<Fragment> fragmentlist;
private Fragment1 fragment1;
private Fragment2 fragment2;
private ArrayList<String> leftlist = new ArrayList<String>();// left list
private ListAdapter listAdapter = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fragmentViewPager = (ViewPager) findViewById(R.id.fragmentViewPager);
leftListView = (ListView) findViewById(R.id.leftListView);
initDatas();// left初始化。
initDatasViewPager();
// aTextViewCallBack back = (aTextViewCallBack)
// findViewById(R.id.aTextViewCallBack);
// back.setCalBack(new calBack() {
// @Override
// public void onclick() {
// // TODO Auto-generated method stub
// Toast.makeText(MainActivity.this, "這是回調(diào)的點(diǎn)擊事件哦~",
// Toast.LENGTH_LONG).show();
// }
// });
//
// new Thread(new Runnable() {
//
// @Override
// public void run() {
// // TODO Auto-generated method stub
// String str = "http://www.easyicon.net/";
// String st = getHtmlByURL.getHtmlByURL(str);
// Message msg = handler.obtainMessage(0,st);
// handler.sendMessage(msg);
// }
// }).start();
// handler = new Handler() {
// public void handleMessage(Message msg) {
// super.handleMessage(msg);
// String x = msg.obj.toString();
// Log.i("GEtHtml", x);
// };
// };
}
public void initDatas() {
for (int i = 0; i < 5; i++) {
leftlist.add("第" + i + "個(gè)");
Log.i("65", leftlist.get(i).toString());
}
ArrayList<ButtonView> buttonListView = new ArrayList<ButtonView>();
ButtonView a = new ButtonView(R.string.pay_name_weixin);
buttonListView.add(a);
ButtonView b = new ButtonView(R.string.pay_name_alipay);
buttonListView.add(b);
listAdapter = new ListAdapter(buttonListView);
leftListView.setAdapter(listAdapter);
leftListView.setDividerHeight(0);
// listview點(diǎn)擊事件
leftListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Log.e("tag", Integer.toString(position));
// TODO Auto-generated method stub
listAdapter.setSelectedPosition(position);
listAdapter.notifyDataSetInvalidated();
if (position % 2 == 1) {
fragmentViewPager.setCurrentItem(1);
}else{
fragmentViewPager.setCurrentItem(0);
}
}
});
}
public void initDatasViewPager() {
fragmentlist = new ArrayList<Fragment>();
fragment1 = new Fragment1();//
fragment2 = new Fragment2();//
fragmentlist.add(fragment1);
fragmentlist.add(fragment2);
fragmentViewPager.setAdapter(new FragmentAdapter(
getSupportFragmentManager(), fragmentlist, this));
fragmentViewPager.setOnPageChangeListener(new MyOnPageChangeListener());
}
// set OnPageChangeListener in inner class
class MyOnPageChangeListener implements OnPageChangeListener {
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
/**
* 當(dāng)點(diǎn)擊不同id的ViewPage的時(shí)候才觸發(fā)
* */
@Override
public void onPageSelected(int arg0) {
Log.e("tag1", Integer.toString(arg0));
switch (arg0) {
case 0:
break;
case 1:
break;
case 2:
break;
}
}
}
public class ListAdapter extends BaseAdapter {
ArrayList<ButtonView> arrayList = null;
LayoutInflater inflater;
View view;
ButtonLayoutHolder buttonLayoutHolder;
LinearLayout buttonLayout = null;
TextView buttonText = null;
private int selectedPosition = -1;// 選中的位置
public ListAdapter(ArrayList<ButtonView> buttonListView) {
// TODO Auto-generated constructor stub
arrayList = buttonListView;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return arrayList.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return arrayList.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public void setSelectedPosition(int position) {
selectedPosition = position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.button_layout, null, false);
buttonLayoutHolder = (ButtonLayoutHolder) view.getTag();
if (buttonLayoutHolder == null) {
buttonLayoutHolder = new ButtonLayoutHolder();
buttonLayoutHolder.buttonLayout = (LinearLayout) view
.findViewById(R.id.LinearLayoutButton);
buttonLayoutHolder.textView = (TextView) view
.findViewById(R.id.TextViewButton);
view.setTag(buttonLayoutHolder);
}
buttonLayout = buttonLayoutHolder.buttonLayout;
buttonText = buttonLayoutHolder.textView;
if (selectedPosition == position) {
buttonText.setSelected(true);
buttonText.setPressed(true);
buttonLayout.setBackgroundColor(Color.parseColor("#e4e8e9"));
buttonText.setTextColor(Color.BLUE);
} else {
buttonText.setSelected(false);
buttonText.setPressed(false);
buttonLayout.setBackgroundColor(Color.parseColor("#2f4471"));
buttonText.setTextColor(Color.WHITE);
}
buttonText.setHeight(40);
buttonText.setText(arrayList.get(position).textViewId);
return view;
}
};
}
class ButtonView {
int textViewId;
ButtonView(int tId) {
textViewId = tId;
}
}
class ButtonLayoutHolder {
LinearLayout buttonLayout;
TextView textView;
}
FragmentAdapter.java
[java] view plain copy
public class FragmentAdapter extends FragmentPagerAdapter{
private List<Fragment> listmVp;
private Context context;
public FragmentAdapter(FragmentManager fm, List<Fragment> listmVp,Context context) {
super(fm);
this.listmVp = listmVp;
this.context = context;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return listmVp.size();
}
@Override
public Fragment getItem(int arg0) {
// TODO Auto-generated method stub
return listmVp.get(arg0);
}
}
Fragment1.java
public class Fragment1 extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
return inflater.inflate(R.layout.fragment1, container, false);
}
}
Fragment2.java
public class Fragment2 extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
return inflater.inflate(R.layout.fragment2, container, false);
}
}
源碼地址:使用fragment實(shí)現(xiàn)左側(cè)導(dǎo)航
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
OpenGL關(guān)于glStencilFuncSeparate()和glStencilFunc()函數(shù)的區(qū)別講解
今天小編就為大家分享一篇OpenGL關(guān)于glStencilFuncSeparate()和glStencilFunc()函數(shù)的區(qū)別講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-04-04
Android學(xué)習(xí)筆記--使用剪切板在Activity中傳值示例代碼
相對(duì)于getText和setText而言,利用ClipData對(duì)象來(lái)傳遞數(shù)據(jù),更符合面向?qū)ο蟮乃枷?,而且所能傳遞的數(shù)據(jù)類(lèi)型也多樣化了2013-06-06
android側(cè)滑菜單控件DrawerLayout使用方法詳解
這篇文章主要為大家詳細(xì)介紹了android側(cè)滑菜單控件DrawerLayout的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
為Android Studio編寫(xiě)自定義Gradle插件的教程
這篇文章主要介紹了為Android Studio編寫(xiě)自定義Gradle插件的教程,Android Studio現(xiàn)在基本上已經(jīng)成為了安卓開(kāi)發(fā)的標(biāo)配IDE,友可以參考下2016-02-02
adb通過(guò)wifi連接android設(shè)備流程解析
這篇文章主要介紹了adb通過(guò)wifi連接android設(shè)備流程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12
Android 軟鍵盤(pán)狀態(tài)并隱藏輸入法的實(shí)例
這篇文章主要介紹了Android 軟鍵盤(pán)狀態(tài)并隱藏輸入法的實(shí)例的相關(guān)資料,這里提供實(shí)例實(shí)現(xiàn)軟鍵盤(pán)切換并隱藏輸入法的鍵盤(pán),需要的朋友可以參考下2017-09-09
android Activity線性布局和表格布局實(shí)例講解
在activity的布局中,線性布局和表格布局是最簡(jiǎn)單的,這次分別從線性布局,表格布局以及線性布局和表格混合布局做了實(shí)驗(yàn)2013-11-11
Android Studio 實(shí)現(xiàn)九宮格功能
這篇文章主要介紹了Android Studio 實(shí)現(xiàn)九宮格,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04

