五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現在的位置: 365建站網 > 365文章 > Android 使用Fragment,ViewPagerIndicator 制作app主要框架教程

Android 使用Fragment,ViewPagerIndicator 制作app主要框架教程

文章來源:365jz.com     點擊數:421    更新時間:2017-11-29 12:11   參與評論

本來準備下載個客戶端放手機上,沒事可以瀏覽瀏覽資訊,下載了官方的之后,發(fā)現并不能很好的使用。恰好搜到一個大神自己寫的app,下載安裝了一下,感覺很不錯,也很流暢,基本滿足了我們 日常瀏覽的需求。

app效果圖:

 

 





我會在博客中完整的介紹這個項目的制作,第一篇當然是整個項目的整體結構了。

效果圖:



1、頭部的布局文件,這個很簡單:

 

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/light_blue" 
    android:orientation="horizontal" > 
 
 
    <ImageView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_vertical" 
        android:layout_marginLeft="8dp" 
        android:layout_marginRight="4dp" 
        android:src="@drawable/biz_navigation_tab_news_pressed" /> 
 
 
    <ImageView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_vertical" 
        android:layout_marginLeft="4dp" 
        android:layout_marginRight="4dp" 
        android:src="@drawable/base_action_bar_back_divider" /> 
 
 
    <TextView 
        android:id="@+id/headTV" 
        android:layout_width="0dp" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_vertical" 
        android:layout_marginLeft="4dp" 
        android:layout_weight="1" 
        android:text="CSDN資訊" 
        android:textColor="@color/white" 
        android:textSize="21sp" 
        android:textStyle="bold" > 
    </TextView> 
 
</LinearLayout> 



就顯示一個圖標和標題。
2、主布局文件:

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#eee" 
    android:orientation="vertical" > 
 
 
    <include layout="@layout/main_head" /> 
 
 
    <com.viewpagerindicator.TabPageIndicator 
        android:id="@+id/id_indicator" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:background="@color/transparentblue" > 
    </com.viewpagerindicator.TabPageIndicator> 
 
 
    <android.support.v4.view.ViewPager 
        android:id="@+id/id_pager" 
        android:layout_width="fill_parent" 
        android:layout_height="0dp" 
        android:layout_weight="1" /> 
 
 
</LinearLayout> 



一個TabPageIndicator和一個ViewPager。
3、主Activity

 

package com.zhy.csdndemo; 
 
 
import com.viewpagerindicator.TabPageIndicator; 
 
 
import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.FragmentPagerAdapter; 
import android.support.v4.view.ViewPager; 
 
 
public class MainActivity extends FragmentActivity 

    private TabPageIndicator mIndicator ; 
    private ViewPager mViewPager ; 
    private FragmentPagerAdapter mAdapter ; 
 
 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
     
        mIndicator = (TabPageIndicator) findViewById(R.id.id_indicator); 
        mViewPager = (ViewPager) findViewById(R.id.id_pager); 
        mAdapter = new TabAdapter(getSupportFragmentManager()); 
        mViewPager.setAdapter(mAdapter); 
        mIndicator.setViewPager(mViewPager, 0); 
         
         
         
    } 
     
     
 
 



TabAdapter.java
 

package com.zhy.csdndemo; 
 
 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 
 
 
public class TabAdapter extends FragmentPagerAdapter 

 
 
    public static final String[] TITLES = new String[] { "業(yè)界", "移動", "研發(fā)", "程序員雜志", "云計算" }; 
 
 
    public TabAdapter(FragmentManager fm) 
    { 
        super(fm); 
    } 
 
 
    @Override 
    public Fragment getItem(int arg0) 
    { 
        MainFragment fragment = new MainFragment(arg0); 
        return fragment; 
    } 
 
 
    @Override 
    public CharSequence getPageTitle(int position) 
    { 
        return TITLES[position % TITLES.length]; 
    } 
 
 
    @Override 
    public int getCount() 
    { 
        return TITLES.length; 
    } 
 
 

MainFragment.java
 

package com.zhy.csdndemo; 
 
 
import android.annotation.SuppressLint; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.TextView; 
 
 
@SuppressLint("ValidFragment") 
public class MainFragment extends Fragment 

 
 
    private int newsType = 0; 
 
 
    public MainFragment(int newsType) 
    { 
        this.newsType = newsType; 
    } 
 
 
    @Override 
    public void onActivityCreated(Bundle savedInstanceState) 
    { 
        super.onActivityCreated(savedInstanceState); 
    } 
 
 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 
        View view = inflater.inflate(R.layout.tab_item_fragment_main, null); 
        TextView tip = (TextView) view.findViewById(R.id.id_tip); 
        tip.setText(TabAdapter.TITLES[newsType]); 
        return view; 
    } 
 
 




4、在styles.xml中自定義Theme
 

<style name="MyTheme" parent="AppBaseTheme"> 
        <item name="vpiTabPageIndicatorStyle">@style/MyWidget.TabPageIndicator</item> 
        <item name="android:windowBackground">@drawable/init_pic</item> 
        <item name="android:windowNoTitle">true</item>   
        <item name="android:animationDuration">5000</item> 
        <item name="android:windowContentOverlay">@null</item>   
    </style> 
     
    <style name="MyWidget.TabPageIndicator" parent="Widget"> 
        <item name="android:gravity">center</item> 
        <item name="android:background">@drawable/vpi__tab_indicator</item> 
        <item name="android:paddingLeft">22dip</item> 
        <item name="android:paddingRight">22dip</item> 
        <item name="android:paddingTop">8dp</item> 
        <item name="android:paddingBottom">8dp</item> 
        <item name="android:textAppearance">@style/MyTextAppearance.TabPageIndicator</item> 
        <item name="android:textSize">16sp</item> 
        <item name="android:maxLines">1</item> 
    </style> 
 
 
    <style name="MyTextAppearance.TabPageIndicator" parent="Widget"> 
        <item name="android:textStyle">bold</item> 
        <item name="android:textColor">@color/black</item> 
    </style> 



在AndroidManifest中注冊使用:
 

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.zhy.csdndemo" 
    android:versionCode="1" 
    android:versionName="1.0" > 
 
 
    <uses-sdk 
        android:minSdkVersion="13" 
        android:targetSdkVersion="17" /> 
 
 
    <application 
        android:allowBackup="true" 
        android:icon="@drawable/ic_launcher" 
        android:label="@string/app_name" 
        android:theme="@style/AppTheme" > 
        <activity 
            android:name="com.zhy.csdndemo.MainActivity" 
            android:label="@string/app_name"  
            android:theme="@style/MyTheme"> 
            <intent-filter> 
                <action android:name="android.intent.action.MAIN" /> 
 
 
                <category android:name="android.intent.category.LAUNCHER" /> 
            </intent-filter> 
        </activity> 
    </application> 
 
 
</manifest> 



總體還是很簡單的,但是效果很不錯啊,現在不是流行Fragment么~好了 ,如果這篇文章對你有幫助,贊一個~

 

源碼點擊此處下載

如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網友會為你解答??! 點擊進入論壇

發(fā)表評論 (421人查看0條評論)
請自覺遵守互聯網相關的政策法規(guī),嚴禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學習

業(yè)務咨詢

· 技術支持
· 服務時間:9:00-18:00
365建站網二維碼

Powered by 365建站網 RSS地圖 HTML地圖

copyright © 2013-2024 版權所有 鄂ICP備17013400號