亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • 監聽Viewpager的具體實現

    查看全部
  • ViewPage的setOnPageListene被棄用,改用addOnPageListener即可

    查看全部
  • 為ViewPager添加Fragment

    1. 創建對應的類繼承Fragment

    2. 創建對應的布局文件

    3. FragmentPagerAdapter設置Fragment的適配器
    4. ViewPager添加適配器
    查看全部
  • Display?display?=?getWindow.getWindowManager.getDefaultDisplay();
    DisplayMetrics?windowMetrics?=?new?DisplayMetrics();
    dispaly.getMetrics(windowMetrics);
    mScreen1_2?=?windowMetrics?/?2;


    查看全部
  • 讓指示器跟隨屏幕的移動而移動
    查看全部
  • 讓指示器占據屏幕的三分之一
    查看全部
  • 直接lp.leftMargin= (int) (mCurrentPageIndex*mScreen1_3+(positionOffset+position-mCurrentPageIndex)*mScreen1_3); 就不用判斷了吧
    查看全部
  • 其實可以更簡單 直接設置 leftmargin=position*mscreen1_3+(int)(positionOffset*mscreen1_3)就行了
    查看全部
  • 界面效果
    查看全部
  • 關于onPageScrolled(int position, float positionOffset, int positionOffsetPixels)三個參數的分析: 在該方法中添加如下代碼,打印日志: Log.i("info","position="+position+",positionOffset="+positionOffset +",positionOffsetPixels="+positionOffsetPixels); // 觀察在滑動頁面的時候三者各自的變化情況 情況總結: position就是當前頁面的編號,范圍從0到N-1(N為頁面總數),滑動時非連續變化,是直接由一個整數變為相鄰的整數。 當position由0變為1的時候,positionOffset是從0逐漸增加到1。 當position由1變為0的時候,positionOffset是從1逐漸減少到0。 依此類推。 而positionOffsetPixels = positionOffset * 屏幕寬度。
    查看全部
  • 代碼部分: 1.首先添加一個成員變量:private int mScreen1_3; 2.創建方法,用于改變Tabline的位置: public void initTabline() { mTabline = (ImageView)findViewById(R.id.id_iv_tabline); Display display = getWindow().getWindowManager().getDefaultDisplay(); DisplayMetrics outMetrics = new DisplayMetrics(); display.getMetrics(outMetrics); // 此時outMetrics已經攜帶了屏幕的寬度、高度等信息 mScreen1_3 = outMetrics.widthPixels/3; ViewGroup.LayoutParams lp = mTabline.getLayoutParams(); lp.width = mScreen1_3; mTabline.setLayoutParams(lp); } 3.在監聽事件onPageScrolled()添加如下代碼: LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) mTabline.getLayoutParams(); lp.leftMargin = (int)((positionOffset+position) * mScreen1_3); mTabline.setLayoutParams(lp);
    查看全部
  • Android Studio快捷鍵:Ctrl + Alt + M,可以將選中的一段代碼抽取成為一個獨立的方法。 在Eclipse上是 Alt+shift+M。 Tab類型App的主界面有以下幾種 1. 早期類型:ViewPager + 多個布局文件,底部可以是LinearLayout或者RadioButton,通過點擊底部的時候不斷改變ViewPager的setCurrentPager(),就可以實現tab的切換。 2. Android3.0開始使用Fragment,通過 FragmentManager + Fragment實現。這種方式沒有使用ViewPager,所以無法實現由手指拖動的屏幕切換效果。 3. ViewPager + FragmentPagerAdapter,也就是本課程的方式,這種方式集合了上述兩點的優點,既可以實現左右拖動的效果,并且也實現了代碼的分離,即:空白區域每個Tab下的內容都是一個Fragment并且能左右拖動。 4. 早期的并且不被谷歌推薦的方式:TabHost。 如果不需要進行左右拖動,而只是點擊切換的話,推薦使用第2種方式:布局更加靈活、便于復用。 課程回顧: 1. BadgeView的使用。 2. ViewPager的3種監聽事件(例如 onPagerListener )的分析,包括對其參數的分析。 3. 為Tabline(作為指示器)找到合適的參數類型,使其不斷地改變leftMargin,實現指示器跟隨手指的一個拖動效果。 4. 目標:更加熟練地掌握 ViewPager + FragmentPagerAdapter
    查看全部
  • 本節的編程步驟: 1. 給top2的chat所在的LinearLayout設置id。 2. 在MainActivity中添加兩個成員變量: private BadgeView mBadgeView; // 消息提醒的數字效果 private LinearLayout mChatLinearLayout; 3. 在init()中初始化mChatLinearLayout: mChatLinearLayout = (LinearLayout)findViewById(R.id.id_ll_chat); 在監聽事件onPageSelected中添加消息的顯示: case 0: if(mBadgeView!=null){ // 防止mBadgeView的累積 mChatLinearLayout.removeView(mBadgeView); } mBadgeView = new BadgeView(MainActivity.this); mBadgeView.setBadgeCount(7); // 顯示7條消息 mChatLinearLayout.addView(mBadgeView); // 將BadgeView添加到布局中 mChatTextView.setTextColor(0xFF008000); break; ------------------- 在Android Studio中直接添加下載好的BadgeView.java到項目之下,而無需添加badgeview.jar到libs,就可以在項目中創建BadgeView對象。
    查看全部
  • 新建3個Fragment作為3個頁面,會比使用3個Activity作為頁面要輕量一些,代碼不會臃腫。 例如新建一個通訊錄的Fragment(另外兩個依此類推): public class ContactTabFragment extends Fragment{ @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return inflater.inflate(R.layout.tab3,container,false); } } 對應的布局文件tab03.xml只添加一個TextViwe: <TextView android:text="This is the third Tab" android:textSize="22sp" android:textStyle="bold" android:layout_width="wrap_content" android:layout_height="wrap_content" />
    查看全部
  • 主界面的代碼,注意這里繼承的是FragmentActivity,不是Activity。 public class MainActivity extends FragmentActivity{ private ViewPager mViewPager; private FragmentPagerAdapter mAdapter; private List<Fragment> mData; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); requestWindowFeature(Window.FEATURE_NO_TITLE); init(); } public void init(){ mViewPager = (ViewPager)findViewById(R.id.id_viewPager); mData = new ArrayList<Fragment>(); ChatTabFragment tab01 = new ChatTabFragment(); FriendTabFragment tab02 = new FriendTabFragment(); ContactTabFragment tab03 = new ContactTabFragment(); mData.add(tab01); mData.add(tab02); mData.add(tab03); mAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { return mData.get(position); } @Override public int getCount() { return mData.size(); } }; mViewPager.setAdapter(mAdapter); } }
    查看全部
  • 完完全全按照老師的代碼編寫,則會在Android Studio的運行中報出異常: Error: java.util.concurrent.ExecutionException: com.android.ide.common.proce... 原因是 top1_bg.9 并非是嚴格的.9格式圖片,我們必須刪掉它,直接用顏色#000000代替就行。 然后重啟,就可以了。但如果還是報同樣的錯誤,那就是tabline.9這張圖片也有問題,解決方法參見:http://www.xianlaiwan.cn/qadetail/73825 里面的“板栗酥餅”的方法。 關于.9圖片在Android Studio上報錯的原因,參見:http://blog.csdn.net/omrleft123/article/details/54381752
    查看全部
  • 如圖,是top2布局的編寫: <LinearLayout android:layout_width="match_parent" android:layout_height="37dp"> <LinearLayout android:layout_width="3dp" android:gravity="center" android:layout_weight="1" android:layout_height="match_parent"> <TextView android:textColor="#008000" android:text="聊天" android:layout_width="wrap_content" android:layout_height="wrap_content" ></TextView> </LinearLayout> <LinearLayout TextView"發現" </LinearLayout> <LinearLayout TextView"通訊錄" </LinearLayout> </LinearLayout> <ImageView android:layout_width="120dp" android:layout_height="3dp" android:background="@drawable/tabline"></ImageView>
    查看全部
  • 如圖,在主界面中添加另外兩個布局。
    查看全部
  • 界面頂端的布局: <LinearLayout android:gravity="center" android:layout_centerVertical="true" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ImageView android:layout_width="30dp" android:layout_height="30dp" android:src="@drawable/actionbar_icon"/> <TextView android:layout_marginStart="12dp" android:text="微信" android:textColor="#d3d3d3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="18sp"/> </LinearLayout> <LinearLayout android:layout_centerVertical="true" android:layout_alignParentRight="true" android:layout_width="wrap_content" android:layout_height="wrap_content"> 這里添加3個ImageView,和上面的ImageView一樣,但圖片改為actionbar_search_icon、actionbar_add_icon 和 actionbar_more_icon。 </LinearLayout>
    查看全部
  • 模仿微信的主界面 如圖,當手指在界面上進行左右撥動的時候,上面藍色的Tab會跟隨手指一起移動,當移動到確切的Tab時,該Tab的文字顏色會由黑色變為綠色。 主體可滑動部分是ViewPager,上面的指示器會跟隨手指移動(這是本課程的難點),還有紅色的消息通知,用的是GitHub上的BadgeView。 網站:https://github.com/stefanjauker/BadgeView,點擊右側欄的“Download Zip”即可下載源碼。其中的Sample Code就是要實現的通知的樣子。
    查看全部
首頁上一頁1234567下一頁尾頁

舉報

0/150
提交
取消
課程須知
本課程對于學習者要求較高,最少也要達到以下兩個要求,首先,對Java語言的掌握,必須熟悉、熟練、精通;其次,要對Android中的布局達到小成的境界,熟悉Android常用API;最后再加一條,如果想很好的跟上老師的講課速度,那么好好熟悉一下Eclipse IDE吧
老師告訴你能學到什么?
1、BadgeView的使用 2、ViewPager與FragmentPagerAdapter結合制作主界面 3、ViewPager的OnPageChangeListener的詳細介紹 4、如何巧妙利用onPageScrolled方法,完美實現指示器的動畫效果

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!