SlidingMenu的使用,結合Fragment(eclipse環境)

首先下載SlidingMenu,有Library和Sample,然后在自己的項目中引入類庫(引入智慧北京工作空間的Library),然后V4包會發生沖突,刪掉自己項目Libs目錄下的V4包即可

側滑布局和主界面布局都先用一個空布局填充一下(FrameLayout),

UI框架搭建簡介:整個界面就是一個MainActivity,MainActivity左邊是一個滑動側邊欄,是一個Fragment;MainActivity主體又是一個Fragment(三個Fragment中的某一個),左側邊欄Fragment依附于MainActivity,三個主體Fragment依附于側邊欄Fragment

項目的代碼結構:

?

MainActivity的代碼:

//一打開程序默認就是讀者Fragment
public class MainActivity extends SlidingFragmentActivity{//改為Public
    @Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);//把主布局設置為空布局(FrameLayout)
        setBehindContentView(R.layout.left_menu);//把左側邊欄布局設置為空布局SlidingMenu slidingMenu = getSlidingMenu();//設置觸摸模式為全屏觸摸
        slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//設置預留屏幕的寬度為110dpslidingMenu.setBehindOffset(SizeUtils.dip2px(MainActivity.this, 110));FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();//把左側菜單的空布局替換成Fragment,注意,一定是用R.id,即FrameLayout的ID//而不是R.layout,不是布局文件的IDtransaction.replace(R.id.left_menu, new FragmentLeft());//把主內容的空FrameLayout的ID替換成讀者Fragmenttransaction.replace(R.id.activity_main, new ReaderFragment(MainActivity.this));transaction.commit();}}

?

?

左側菜單Fragment的布局:

/**左側菜單的Fragment,在左側菜單Fragment里面處理點擊事件*/
public class FragmentLeft extends Fragment implements OnClickListener {private View view;@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {view = View.inflate(getActivity(), R.layout.left_menu_fragment, null);initView();return view;}private void initView() {//左側菜單的讀者TextView tv_duzhe= (TextView) view.findViewById(R.id.tv_duzhe);//左側菜單的充值TextView tv_pay= (TextView) view.findViewById(R.id.tv_pay);//左側菜單的收藏TextView tv_collect= (TextView) view.findViewById(R.id.tv_collect);tv_duzhe.setOnClickListener(this);tv_pay.setOnClickListener(this);tv_collect.setOnClickListener(this);}@Overridepublic void onClick(View v) {//獲取SlidingMenuSlidingFragmentActivity activity= (SlidingFragmentActivity)getActivity();SlidingMenu slidingMenu = activity.getSlidingMenu();switch (v.getId()) {case R.id.tv_duzhe:ReaderFragment readerFragment = new ReaderFragment(getActivity());getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.activity_main, readerFragment).commit();slidingMenu.toggle();break;case R.id.tv_pay://當每次點擊充值時,就用充值Fragment替換主布局,主布局就是一個FrameLayoutPayFragment payFragment = new PayFragment(getActivity());getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.activity_main, payFragment).commit();//Fragment替換之后,就關閉側邊欄
            slidingMenu.toggle();//如果側邊欄是打開的,就關閉,反之亦然break;case R.id.tv_collect:
       //收藏FragmentgetActivity().getSupportFragmentManager().beginTransaction().replace(R.id.activity_main,
new CollectFragment(getActivity())).commit();slidingMenu.toggle();break;default:break;}} }

?

?

讀者的Fragment,Fragment里的布局就是兩個字,其它兩個Fragment一模一樣,就不寫了

/**讀者的Fragment*/
public class ReaderFragment extends Fragment {private Context context;/**由于ReaderFragment是依附于側邊欄Fragment的,所以不能用getActivity()來獲取上下文,必須傳過來*/public ReaderFragment(Context context){this.context=context;}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {System.out.println("讀者Fragment");View view = View.inflate(context, R.layout.fragment_duzhe, null);return view;}
}

這就是類似于讀者APP的界面,運行效果圖如下:

轉載于:https://www.cnblogs.com/android-yus/p/4950423.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258110.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258110.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258110.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

log4j日志文件配置說明及使用

一.log4j.properties文件格式說明: log4j.rootLoggerinfo, stdoutlog4j.appender.stdoutorg.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layoutorg.apache.log4j.PatternLayout# Pattern to output the callers file name and line number.log4j.appende…

java如何做全局緩存_傳智播客JNI第七講 – JNI中的全局引用/局部引用/弱全局引用、緩存jfieldID和jmethodID的兩種方式...

講解JNI中的全局引用/局部引用/弱全局引用、緩存jfieldID和jmethodID的兩種方式,并編寫兩種緩存方式的示例代碼。1.從Java虛擬機創建的對象傳到本地C/C代碼時會產生引用,根據Java的垃圾回收機制,只要有引用存在就不會出發該引用指向的Java對象…

起一卦,還是那個破事。還是大兇。

公元:2013年6月20日11時48分46秒 陽3局農歷:2013年05月12日11時48分芒種:2013-6-5 20:44:00 小暑:2013-7-7 7:09:00干支:癸巳年 戊午月 丁巳日 丙午時 旬空:午未空 子丑空 子丑空 寅卯空直符&#…

老工業基地調整改造與振興

老工業基地調整改造與振興 一、運用“兩只手”,加快工業結構調整 一方面,運用市場機制即“看不見的手”進行調整。通過市場競爭機制、價格波動機糾、供求均衡機制、優勝劣汰機制等,實現資源的合理流動和優化配置。 另一方面,運用宏…

如何使用DNS反向映射來掃描IPv6地址?

目前增加的IPv6地址空間不僅提高了對啟發式算法的使用(執行IPv6地址掃描時),而且還推動了人們探索替代技術用于查找IPv6節點。本文中我們將探討如何使用一種極其強大的向量來發現IPv6節點:使用DNS反向映射。 IPv6地址掃描攻擊通常…

java jre下載安裝教程_java JRE下載、安裝以及環境變量教程

java JRE下載、安裝以及環境變量教程作者:小丸子 來源:PC下載網時間:2017-10-17 19:12:33JRE也就是(Java Runtime Environment)Java運行環境,是運行JAVA程序所必須的環境的集合,包含各種類庫。今天PC下載網小編為您介紹jre的下載 安裝 跟環境變量的配置1…

java環境變量設置與java查看安裝路徑

把jdk安裝到計算機中之后,我們來進行設置使java環境能夠使用。 首先右鍵點我的電腦。打開屬性。然后選擇“高級”里面的“環境變量”,在新的打開界面中的系統變量需要設置三個屬性“JAVA_HOME”、 “path”、“classpath”,其中在沒安裝過jdk的環境下。p…

C#設計模式學習筆記-單例模式

C#設計模式學習筆記-單例模式 最近在學設計模式,學到創建型模式的時候,碰到單例模式(或叫單件模式),現在整理一下筆記。 在《Design Patterns:Elements of Resuable Object-Oriented Software》中的定義是&…

kotlin為什么比java編譯慢_為什么Kotlin編譯速度比Scala快? [關閉]

雖然我認為這個問題不適合Stack Overflow,因為它傾向于主要產生基于意見的答案,但這里有一個嘗試:你有兩種不同的語言,特別是關于類型系統,以及兩個完全獨立的編譯器實現 . 所以期望它們具有“相同”的編譯速度已經是一…

錫山國土推行數據中心“在線變更”

為全面提高全區土地變更工作效率,國土錫山分局全面推行數據中心在線變更。由不動產登記科利用數據中心管理平臺,將遙感影像、監測信息以及監測圖斑的土地利用現狀信息、土地利用總體規劃信息錄入“數據中心”,制定我區的變更調查工作方案&…

Linux 安裝loadrunner 碰到的問題

關于linux下面搭建loadrunner的詳細步驟: http://blog.sina.com.cn/s/blog_9aa583cf0101bu4y.html http://hi.baidu.com/higkoo/item/d75027acc78bab3e030a4dde?qq-pf-topcqq.c2c http://www.cnblogs.com/xiaoTT/archive/2012/02/15/2352127.html 用控制臺加載負載…

數據分析真的能驅動用戶快速增長嗎?

俗話說,“酒香不怕巷子深”;俗話又說,“酒香也怕巷子深” 。再后來,俗話還說,管他酒香不香巷子深不深,只要找個算盤技巧神乎其神的賬房先生,即數據科學家,酒就可以大賣了。這叫做用數據驅動用戶…

java 常見bug_java常見bug

org.hibernate.QueryException: could not resolve property: menuId of:無法解析menuId 字段,是指這個字段有錯Servlet.service() for servlet default threw exception09:28:54,704 ERROR [CoyoteAdapter] An exception or error occurred in the container durin…

解決啟動Biee控制臺亂碼問題

解決啟動Biee控制臺亂碼問題 在安裝完Biee后,大家都可以看到在程序中可以找到啟動BI服務的地方 點擊上圖中的啟動bi服務則在window系統中會彈出一個dos窗口,來顯示執行啟動服務的操作,如下圖 上圖顯示的是正常情況,本人安裝后首次…

“北航Clubs” Alpha版發布!

一、功能 1.獲取活動信息: 用戶進入網站后,第一眼就可以查看到近期活動 2.查看活動詳情 點擊活動標題,可以進入活動詳情頁面 3.注冊功能 首頁點擊注冊,輸入學號、密碼、姓名、手機號即可完成注冊 4.用戶登陸 擁有賬號之后&#xf…

物聯網與零邊際成本共享經濟

物聯網是由通訊網絡、能源網絡、物流網絡組成,這些網絡共同在單一操作系統中合作,持續尋找各種方法來提升資源整編、生產及配送商品和服務,以及廢棄物回收等過程中的熱力效率和生產力;這三種網絡相輔相成,缺一不可。若缺乏通訊&am…

C++程序設計教程學習(1)-第一部分 編程基礎

第一章 概述 C到底難不難學?沒有學不會的事情 1.1 程序設計語言 語言 編程語言 人和計算機交流的工具,群體擴大,人人間交流過程描述與信息表達的工具 機器語言,匯編語言,高級語言 1.2 C簡史 1.3 C 褒貶C 計算機應用范圍…

《Programming WPF》翻譯 第9章 6.我們進行到哪里了?

《Programming WPF》翻譯 第9章 6.我們進行到哪里了? 原文:《Programming WPF》翻譯 第9章 6.我們進行到哪里了?只有當任何內嵌控件都沒有提供你需要的底層行為時,你將要寫一個自定義控件。當你寫一個自定義控件,你將要使用到依賴…

php實現上傳,PHP實現文件上傳例子

實例1:上載文件表單網頁:updatefile.htm上載文件表單請選取文件:[CtrlA 全部選擇 然后拷貝]處理上載文件網頁:updatefile.php3處理上載文件copy($userfile, "newfilename");echo $userfile." - 用戶上傳到服務器上的文件臨時存…

浙企加入中國大數據產業生態聯盟 共商數據價值

基于大數據時代的考量,在工業和信息化部指導下,8月2日,中國電子信息產業發展研究院聯合大數據產業鏈各環節企業及第三方產業機構自愿組成非營利社會組織——中國大數據產業生態聯盟。浙江企業元寶鋪受邀成為聯盟理事成員單位。 大會現場&…