-
initView();
initEvent();
setSelect();
?內容可變的控件 對應一個adapter 和一般為list類型的數據
extract method
查看全部 -
mark查看全部
-
mark查看全部
-
可以的查看全部
-
優化布局層次 1,include 2,merge 3,ViewStub查看全部
-
優化布局層次 include merge ViewStub查看全部
-
Fragment實現tab查看全部
-
實現方法和上節基本類似,不過加上了第三方ViewPagerIndicator控件作為指示器。 使用方法分為三步: 1、在布局中定義布局ViewPagerIndicator加ViewPager 2、按上節步驟寫好viewPager適配器 3、為ViewPagerIndicator設置ViewPager查看全部
-
初始化并添加到布局查看全部
-
開啟事務查看全部
-
記得提交事務查看全部
-
拿到對象查看全部
-
每個tag單獨一個Fragment查看全部
-
ViewPager實現tab類型查看全部
-
Eclipse報出"Jar mismatch! Fix your dependencies"錯誤,原因:主包和引用包又含有同一名稱包名,但二者又不一樣,這時就會報錯。解決方法:用其中一個替換另一個,使兩個包完全一致。 -------------- 導入源代碼的style.xml之后,別忘了在配置文件中對<activity>添加屬性:android:theme="@style/MyTheme"。將我們自定義的MyTheme主題樣式加入到視圖中。 ------------- 本節課的做法是所有界面都公用一個Fragment,而不再像之前那樣設置多個Fragment并放進一個List里面然后每次返回一個Fragment。原因很簡單,本節課的Fragment布局都一樣,所以公用一個即可。 實際的開發過程中,依舊是采用之前的做法,也就是使用多個Fragment。 ---------- 以下摘自評論區: Android Studio 導入viewpagerindector最簡單的方法: 根build.gradle(注意這里是“根”,也就是最下面的、總體的build.gradle)下加maven那一行 allprojects { repositories { ... maven { url "https://jitpack.io" } } } 在另外的build.gradle中加編譯compile那一行 dependencies { ... compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1@aar' } 最后sync。 ---------- 如圖,是最后呈現的效果。查看全部
-
總結: Fragment作為內容區域,優勢:Fragment管理自己的布局,管理布局內所有控件的邏輯,不會造成MainActivity代碼冗余,MainActivity只作為一個調度器,調度顯示不同的Fragment、隱藏不同的Fragment。這樣便于代碼的復用,也便于后期的維護。 如果希望界面能夠拖動,就使用ViewPager+FragmentPagerAdapter去實現;如果不需要界面的拖動,例如QQ的信息界面是一個ListView,ListView想添加一個“右滑刪除效果”,所以可能不需要ViewPager的效果(因為在拖動時會存在一個判斷問題,互相影響),這時就使用Fragment。 ----------------- 一般而言,Android內容可變的控件,例如ViewPager、ListView、GridView,都是一種“模式”:一個控件對應一個適配器,一個適配器對應一個數據源,數據源一般是一個List。查看全部
-
ViewPager和Fragment的比較: ViewPager:所有的布局、所有的控件、所有的事件都會寫在MainActivity里面,使得MainActivity非常冗長,不利于代碼的維護。 Fragment只管理自己的布局,布局內部的控件、事件也由它自己處理。MainActivity只起到調度的作用。這么一來,所有的控件各歸其主,MainActivity的代碼也比較容易看得清楚,也有利于后期的維護,維護成本也比較低。 另外,Fragment在適配不同的屏幕尺寸的時候,發揮了它得天獨厚的優點。 -------------- 為了實現更好的兼容性,MianActivity繼承的是FragmentActivity。 通過 getSupportFragmentManager() 獲取 Fragment管理器。 -------------- Android布局優化:include、merge、ViewStub,分別是布局的復用、減少布局層級、按需加載。 推薦網址:http://www.open-open.com/lib/view/open1461376675538.html#articleHeader2查看全部
-
之前遇到的問題:為tab(一個LinearLayout布局)設置點擊事件,然后點擊tab內部的TextViwe,正常觸發點擊事件,但點擊tab內部的ImageButton,卻不觸發。原因是ImageButton 本身具有可點擊性(TextViwe也有,但默認是關閉的),當我們點擊ImageButton時,系統會優先判斷 ImageButton 是否存在點擊事件,而不是判斷它的父容器tab,從而導致不能觸發tab的點擊事件。 解決方法: 如圖,對ImageButton設置屬性:android:clickable="false",取消ImageButton的可點擊性。 ---------------- Android Studio上為ViewPager設置監聽頁面變化的監聽器,需要調用addOnPageChangeListener()方法。查看全部
-
為什么使用Tab? 合理地使用Tab可以極大地利用Android屏幕資源,因為手機屏幕比較小。 使用Tab也是Android開發中必不可少的技能。 --------- 如圖,是bottom布局的部分代碼。 其根布局是一個LinearLayout,高度為55dp,orientation="horizontal"。 根布局之下是4個子布局,也是LinearLayout。 每一個子布局都大同小異: <LinearLayout android:id="@+id/id_tab_weixin" android:layout_weight="1" android:orientation="vertical" android:gravity="center" android:layout_width="0dp" android:layout_height="match_parent"> <ImageButton android:id="@+id/id_tab_weixin_img" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/tab_weixin_pressed" android:background="#00000000"/> <!--#00000000:按鈕自身的背景設置為透明--> <TextView android:text="微信" android:textColor="#ffffff" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> ---------------- 設置無標題界面: requestWindowFeature(Window.FEATURE_NO_TITLE)必須在setContentView(R.layout.activity_main)之前。查看全部
-
在模仿微信布局的時候(布局是垂直分布的;而top高度為45dp,bottom高度為55dp): <include layout="@layout/top"/> <android.support.v4.view.ViewPager android:id="@+id/id_viewpager" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v4.view.ViewPager> <include layout="@layout/bottom"/> 發現bottom布局被完全踢出屏幕!該怎么解決? 將中間的控件ViewPager的高度設為0dp并添加一條屬性: android:layout_weight="1" 就可以解決問題。這也就是利用了layout_weight的小技巧??梢酝昝勒紦S嗫臻g,而且不會對已經設置了大小的控件造成影響。查看全部
-
效果圖。。查看全部
-
?。?!查看全部
舉報
0/150
提交
取消