最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android應(yīng)用中使用ViewPager和ViewPager指示器來(lái)制作Tab標(biāo)簽

 更新時(shí)間:2016年03月23日 15:50:12   作者:xiaanming  
這篇文章主要介紹了Android中使用ViewPager和ViewPager指示器來(lái)制作Tab標(biāo)簽的方法,ViewPager指示器ViewPageIndicator是一個(gè)開(kāi)源庫(kù),文中舉了一個(gè)仿網(wǎng)易新聞客戶端Tab標(biāo)簽的例子,需要的朋友可以參考下

一、ViewPageIndicator開(kāi)源框架的基本用法
我們先得去Github上面下載這個(gè)庫(kù),下載地址:https://github.com/JakeWharton/Android-ViewPagerIndicator,下載下來(lái)之后你可以運(yùn)行例子,來(lái)看看我們需要什么樣的效果,然后在此基礎(chǔ)上改成我們自己想要的效果

1.如何使用開(kāi)源框架
第1步:improt library項(xiàng)目
第2步:導(dǎo)入library進(jìn)我們自己新建的項(xiàng)目
從Github上Download下來(lái)這個(gè)zip包之后,里面會(huì)有一個(gè)library文件,是庫(kù)工程,還有一個(gè)sample,是作者提供的例子(將sample這個(gè)項(xiàng)目import,可以看到作者提供的各種樣式的Indicator,作為參考)。如果要在作者例子的基礎(chǔ)上自己開(kāi)發(fā)樣式,需要將library項(xiàng)目import進(jìn)Eclipse(library是庫(kù)工程,我們需要將其作為我們自己項(xiàng)目的依賴庫(kù))。然后創(chuàng)建一個(gè)新項(xiàng)目,新建的項(xiàng)目libs目錄下面有android-support-v4.jar,這個(gè)必須刪除,因?yàn)閂iewPageIndicator里面有這個(gè)庫(kù),我們項(xiàng)目中不允許兩個(gè)android-support-v4.jar,不刪除我們的項(xiàng)目是不能編譯的。右鍵項(xiàng)目—Properties—Android選項(xiàng)卡—Add—選擇library庫(kù)工程—OK,導(dǎo)入完畢。

2.MainActivity布局
布局中僅一個(gè)ViewPager,一個(gè)ViewPagerIndicator.(本例使用的是其中一種ViewPagerIndicator:TabPagerIndicator)
注意它應(yīng)該緊鄰在ViewPager的上方或下方,總之要挨在一起。

<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:orientation="vertical" >

 <com.viewpagerindicator.TabPageIndicator
  android:id="@+id/indicator"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:background="@drawable/base_action_bar_bg" >
 </com.viewpagerindicator.TabPageIndicator>

 <android.support.v4.view.ViewPager
  android:id="@+id/pager"
  android:layout_width="match_parent"
  android:layout_height="0dp"
  android:layout_weight="1" >
 </android.support.v4.view.ViewPager>

</LinearLayout>

3.MainActivity代碼
第1步:實(shí)例化ViewPager,給ViewPager設(shè)置Adapter
第2步:實(shí)例化TabPageIndicator,TabPageIndicator與ViewPager綁在一起
第3步:在Indicator上設(shè)置OnPagerChangeListner監(jiān)聽(tīng)器
第4步:定義Adapter(繼承FragmentPagerAdapter)

先實(shí)例化ViewPager,然后實(shí)例化TabPageIndicator,然后設(shè)置TabPageIndicator和ViewPager關(guān)聯(lián),就是調(diào)用TabPageIndicator的setViewPager(ViewPager view)方法,這樣子就實(shí)現(xiàn)了點(diǎn)擊上面的Tab,下面的ViewPager切換;滑動(dòng)ViewPager,上面的Tab跟著切換。
ViewPager的每一個(gè)Item我們使用的是Fragment,使用Fragment可以使布局更加靈活一點(diǎn),建議多用Fragment。
設(shè)置監(jiān)聽(tīng)的時(shí)候,需要用Indicator提供的OnPagerChangeListener方法

public class MainActivity extends FragmentActivity { 
 /** 
  * Tab標(biāo)題 
  */ 
 private static final String[] TITLE = new String[] { "頭條", "房產(chǎn)", "另一面", "女人", 
              "財(cái)經(jīng)", "數(shù)碼", "情感", "科技" }; 

 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.activity_main); 

  //實(shí)例化ViewPager, 然后給ViewPager設(shè)置Adapter 
  ViewPager pager = (ViewPager)findViewById(R.id.pager); 
  FragmentPagerAdapter adapter = new TabPageIndicatorAdapter(getSupportFragmentManager()); 
  pager.setAdapter(adapter); 

  //實(shí)例化TabPageIndicator,然后與ViewPager綁在一起(核心步驟) 
  TabPageIndicator indicator = (TabPageIndicator)findViewById(R.id.indicator); 
  indicator.setViewPager(pager); 

  //如果要設(shè)置監(jiān)聽(tīng)ViewPager中包含的Fragment的改變(滑動(dòng)切換頁(yè)面),使用OnPageChangeListener為它指定一個(gè)監(jiān)聽(tīng)器,那么不能像之前那樣直接設(shè)置在ViewPager上了,而要設(shè)置在Indicator上,
  indicator.setOnPageChangeListener(new OnPageChangeListener() { 

   @Override 
   public void onPageSelected(int arg0) { 
    Toast.makeText(getApplicationContext(), TITLE[arg0], Toast.LENGTH_SHORT).show(); 
   } 

   @Override 
   public void onPageScrolled(int arg0, float arg1, int arg2) { 

   } 

   @Override 
   public void onPageScrollStateChanged(int arg0) { 

   } 
  }); 

 } 

 /** 
  * 定義ViewPager的適配器 
  */ 
 class TabPageIndicatorAdapter extends FragmentPagerAdapter { 
  public TabPageIndicatorAdapter(FragmentManager fm) { 
   super(fm); 
  } 

  @Override 
  public Fragment getItem(int position) { 
   //新建一個(gè)Fragment來(lái)展示ViewPager item的內(nèi)容,并傳遞參數(shù) 
   Fragment fragment = new ItemFragment(); 
   Bundle args = new Bundle(); 
   args.putString("arg", TITLE[position]); 
   fragment.setArguments(args); 

   return fragment; 
  } 

  @Override 
  public CharSequence getPageTitle(int position) { 
   return TITLE[position % TITLE.length]; 
  } 

  @Override 
  public int getCount() { 
   return TITLE.length; 
  } 
 } 
}

4.定義ViewPager每一個(gè)Item的代碼(每一個(gè)Fragment)
此例只定義了一個(gè)Fragment,R.layout.fragment僅定義了一個(gè)TextView。在這個(gè)Fragment代碼中,通過(guò)Bundle傳遞一個(gè)Key-value數(shù)據(jù),內(nèi)容僅一個(gè)字符串。實(shí)際開(kāi)發(fā)的時(shí)候,針對(duì)每個(gè)ViewPager的item,要設(shè)計(jì)每個(gè)不同的Fragment的布局、代碼內(nèi)容等。此例代碼只做示范。

public class ItemFragment extends Fragment {

 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
   Bundle savedInstanceState) {

  //動(dòng)態(tài)找到布局文件,再?gòu)倪@個(gè)布局中find出TextView對(duì)象
  View contextView = inflater.inflate(R.layout.fragment_item, container, false);
  TextView mTextView = (TextView) contextView.findViewById(R.id.textview);

  //獲取Activity傳遞過(guò)來(lái)的參數(shù)
  Bundle mBundle = getArguments();
  String title = mBundle.getString("arg");

  mTextView.setText(title);

  return contextView;
 }

 @Override
 public void onActivityCreated(Bundle savedInstanceState) {
  super.onActivityCreated(savedInstanceState);
 } 
}

5.Indicator的樣式修改
第1步:在values/styles中添加<style>:
本例中,添加了3個(gè)<style>,其中"StyledIndicators"是我們需要的<style>,它其中的<item>使用了"CustomTabPageIndicator"這個(gè)<style>,這個(gè)<style>其中的一個(gè)<item>又使用了"CustomTabPageIndicator.Text"這個(gè)<style>。
實(shí)際上可以把"StyledIndicators"<style>的<item>屬性全部寫(xiě)死在"StyledIndicators"下面。 但這樣層級(jí)分離式的寫(xiě)法,增強(qiáng)了代碼的復(fù)用性,以便后期維護(hù)和功能代碼增刪操作。

 <style name="StyledIndicators" parent="@android:style/Theme.Light">
  <item name="vpiTabPageIndicatorStyle">@style/CustomTabPageIndicator</item>
 </style>

 <style name="CustomTabPageIndicator" parent="Widget.TabPageIndicator">
  <item name="android:background">@drawable/tab_indicator</item>
  <item name="android:textAppearance">@style/CustomTabPageIndicator.Text</item>
  <item name="android:textSize">14sp</item>
  <item name="android:dividerPadding">8dp</item>
  <item name="android:showDividers">middle</item>
  <item name="android:paddingLeft">10dp</item>
  <item name="android:paddingRight">10dp</item>
  <item name="android:fadingEdge">horizontal</item>
  <item name="android:fadingEdgeLength">8dp</item>
 </style>

 <style name="CustomTabPageIndicator.Text" parent="android:TextAppearance.Medium">
  <item name="android:typeface">monospace</item>
  <item name="android:textColor">@drawable/selector_tabtext</item>
 </style>

第2步:創(chuàng)建<style>中使用到的drawable資源文件:
在drawable目錄下添加tab_indicator.xml 和selector_tabtext.xml。
本例中使用到了自定義的drawable資源,自定義drawable一般配合上面的自定義style使用,提供圖片、顏色等資源來(lái)支持自定義樣式:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:state_selected="false" android:state_pressed="false" android:drawable="@android:color/transparent" />
 <item android:state_selected="false" android:state_pressed="true" android:drawable="@android:color/transparent" />  
 <item android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/base_tabpager_indicator_selected" />
 <item android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/base_tabpager_indicator_selected" />
</selector>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:state_selected="true" android:color="#EE2C2C" />
 <item android:state_pressed="true" android:color="#EE2C2C" />
 <item android:state_focused="true" android:color="#EE2C2C" />
 <item android:color="@android:color/black"/>
</selector>

第3步:在Manifest中改用我們自定義的樣式:
本例中直接在application上修改,也可以單獨(dú)修改一個(gè)activity

<application
 android:allowBackup="true"
 android:icon="@drawable/ic_launcher"
 android:label="@string/app_name"
 android:theme="@style/StyledIndicators" >

   
二、ViewPageIndicator 和 ViewPager 仿網(wǎng)易新聞客戶端Tab標(biāo)簽
下面我們來(lái)介紹主要代碼的編寫(xiě)了,先看布局文件,上面一個(gè)TabPageIndicator,下面一個(gè)ViewPager,還是很簡(jiǎn)單的布局咯

<LinearLayout 
 xmlns:android="http://schemas.android.com/apk/res/android" 
 android:orientation="vertical" 
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent"> 
 
 <com.viewpagerindicator.TabPageIndicator 
  android:id="@+id/indicator" 
  android:background="@drawable/base_action_bar_bg" 
  android:layout_height="wrap_content" 
  android:layout_width="fill_parent" 
  /> 
 <android.support.v4.view.ViewPager 
  android:id="@+id/pager" 
  android:layout_width="fill_parent" 
  android:layout_height="0dp" 
  android:layout_weight="1" 
  /> 
 
</LinearLayout> 

MainActivity的代碼

package com.example.viewpageindicator; 
 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 
import android.support.v4.view.ViewPager; 
import android.support.v4.view.ViewPager.OnPageChangeListener; 
import android.widget.Toast; 
 
import com.viewpagerindicator.TabPageIndicator; 
 
public class MainActivity extends FragmentActivity { 
 /** 
  * Tab標(biāo)題 
  */ 
 private static final String[] TITLE = new String[] { "頭條", "房產(chǎn)", "另一面", "女人", 
              "財(cái)經(jīng)", "數(shù)碼", "情感", "科技" }; 
 
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.activity_main); 
   
  //ViewPager的adapter 
  FragmentPagerAdapter adapter = new TabPageIndicatorAdapter(getSupportFragmentManager()); 
  ViewPager pager = (ViewPager)findViewById(R.id.pager); 
  pager.setAdapter(adapter); 
 
  //實(shí)例化TabPageIndicator然后設(shè)置ViewPager與之關(guān)聯(lián) 
  TabPageIndicator indicator = (TabPageIndicator)findViewById(R.id.indicator); 
  indicator.setViewPager(pager); 
   
  //如果我們要對(duì)ViewPager設(shè)置監(jiān)聽(tīng),用indicator設(shè)置就行了 
  indicator.setOnPageChangeListener(new OnPageChangeListener() { 
    
   @Override 
   public void onPageSelected(int arg0) { 
    Toast.makeText(getApplicationContext(), TITLE[arg0], Toast.LENGTH_SHORT).show(); 
   } 
    
   @Override 
   public void onPageScrolled(int arg0, float arg1, int arg2) { 
     
   } 
    
   @Override 
   public void onPageScrollStateChanged(int arg0) { 
     
   } 
  }); 
   
 } 
 
  
 /** 
  * ViewPager適配器 
  * @author len 
  * 
  */ 
 class TabPageIndicatorAdapter extends FragmentPagerAdapter { 
  public TabPageIndicatorAdapter(FragmentManager fm) { 
   super(fm); 
  } 
 
  @Override 
  public Fragment getItem(int position) { 
   //新建一個(gè)Fragment來(lái)展示ViewPager item的內(nèi)容,并傳遞參數(shù) 
   Fragment fragment = new ItemFragment(); 
   Bundle args = new Bundle(); 
   args.putString("arg", TITLE[position]); 
   fragment.setArguments(args); 
    
   return fragment; 
  } 
 
  @Override 
  public CharSequence getPageTitle(int position) { 
   return TITLE[position % TITLE.length]; 
  } 
 
  @Override 
  public int getCount() { 
   return TITLE.length; 
  } 
 } 
 
} 

我們先實(shí)例化ViewPager,然后實(shí)例化TabPageIndicator,并且要設(shè)置TabPageIndicator和ViewPager關(guān)聯(lián),就是調(diào)用TabPageIndicator的setViewPager(ViewPager view)方法,這樣子我們就實(shí)現(xiàn)了點(diǎn)擊上面的Tab,下面的ViewPager切換,滑動(dòng)ViewPager上面的Tab跟著切換,ViewPager的每一個(gè)Item我們使用的是Fragment,使用Fragment可以使我們的布局更加靈活一點(diǎn),所以建議大家多用用Fragment,你會(huì)發(fā)現(xiàn)他真的很好用,上面還有一點(diǎn)需要注意的地方,當(dāng)我們需要給ViewPager設(shè)置監(jiān)聽(tīng)的時(shí)候,我們之前設(shè)置OnPageChangeListener直接用ViewPager.setOnPageChangeListener,而現(xiàn)在我們不能這樣子了,TabPageIndicator提供了設(shè)置OnPageChangeListener的方法,我們需要調(diào)用TabPageIndicator.setOnPageChangeListener來(lái)設(shè)置監(jiān)聽(tīng)
 ViewPager的item,也就是Fragment,我這里只用了一個(gè)TextView來(lái)顯示從MainActivity傳遞過(guò)來(lái)的Tab的標(biāo)題,只是為了模擬平常我們實(shí)際使用中,從Activity傳遞參數(shù)給Fragment,布局我就不貼了,代碼也比較簡(jiǎn)單,直接看代碼吧

package com.example.viewpageindicator; 
 
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; 
 
 
public class ItemFragment extends Fragment { 
 
 @Override 
 public View onCreateView(LayoutInflater inflater, ViewGroup container, 
   Bundle savedInstanceState) { 
   
  View contextView = inflater.inflate(R.layout.fragment_item, container, false); 
  TextView mTextView = (TextView) contextView.findViewById(R.id.textview); 
   
  //獲取Activity傳遞過(guò)來(lái)的參數(shù) 
  Bundle mBundle = getArguments(); 
  String title = mBundle.getString("arg"); 
   
  mTextView.setText(title); 
   
  return contextView; 
 } 
 
 @Override 
 public void onActivityCreated(Bundle savedInstanceState) { 
  super.onActivityCreated(savedInstanceState); 
 } 
 
} 

當(dāng)然通過(guò)上面幾步我們還不能對(duì)網(wǎng)易新聞的模仿,我們還必須簡(jiǎn)單修改其樣式,有些東西我是直接從開(kāi)源框架ActionBarSherlock 和 ViewPager 仿網(wǎng)易新聞客戶端拿出來(lái)的,不過(guò)這里的樣式修改比用ViewPageIndicator簡(jiǎn)單多了,樣式如下

<style name="StyledIndicators" parent="@android:style/Theme.Light"> 
 <item name="vpiTabPageIndicatorStyle">@style/CustomTabPageIndicator</item> 
</style> 
 
<style name="CustomTabPageIndicator" parent="Widget.TabPageIndicator"> 
 <item name="android:background">@drawable/tab_indicator</item> 
 <item name="android:textAppearance">@style/CustomTabPageIndicator.Text</item> 
 <item name="android:textSize">14sp</item> 
 <item name="android:dividerPadding">8dp</item> 
 <item name="android:showDividers">middle</item> 
 <item name="android:paddingLeft">10dp</item> 
 <item name="android:paddingRight">10dp</item> 
 <item name="android:fadingEdge">horizontal</item> 
 <item name="android:fadingEdgeLength">8dp</item> 
</style> 
 
<style name="CustomTabPageIndicator.Text" parent="android:TextAppearance.Medium"> 
 <item name="android:typeface">monospace</item> 
 <item name="android:textColor">@drawable/selector_tabtext</item> 
</style> 

通過(guò)上面簡(jiǎn)單的幾步我們就實(shí)現(xiàn)了對(duì)網(wǎng)易新聞的模仿,接下來(lái)我們運(yùn)行下項(xiàng)目看下效果

2016323154653088.jpg (290×550)

三、總結(jié)
用ViewPageIndicator實(shí)現(xiàn)這樣子的Tab標(biāo)簽很容易,而且ViewPageIndicator里面還有各種的指示器,相對(duì)于用ActionBarSherlock來(lái)實(shí)現(xiàn),ViewPageIndicator更加靈活,而且修改ActionBarSherlock的樣式比較復(fù)雜,如果你的項(xiàng)目中有用到ActionBarSherlock這個(gè)庫(kù),你可以使用來(lái)實(shí)現(xiàn)Tab分頁(yè),如果Tab上面還加導(dǎo)航條,ActionBarSherlock只能使用ActionBar來(lái)實(shí)現(xiàn)咯,而使用ViewPageIndicator我們可以更加靈活的使用自己的布局,我們我還是推薦使用ViewPageIndicator,這只是我的個(gè)人觀點(diǎn)。

相關(guān)文章

  • Android編程實(shí)現(xiàn)的簡(jiǎn)易路徑導(dǎo)航條功能示例

    Android編程實(shí)現(xiàn)的簡(jiǎn)易路徑導(dǎo)航條功能示例

    這篇文章主要介紹了Android編程實(shí)現(xiàn)的簡(jiǎn)易路徑導(dǎo)航條功能,結(jié)合實(shí)例形式分析了Android結(jié)合視圖、布局及路徑操作實(shí)現(xiàn)導(dǎo)航條功能的相關(guān)技巧,需要的朋友可以參考下
    2017-01-01
  • Android實(shí)現(xiàn)鬧鐘小程序

    Android實(shí)現(xiàn)鬧鐘小程序

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)鬧鐘小程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • Android MediaPlayer 播放音頻的方式

    Android MediaPlayer 播放音頻的方式

    這篇文章主要介紹了Android MediaPlayer 播放音頻的方式,本文給大家詳細(xì)介紹了MediaPlayer的使用方式,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Android 用 camera2 API 自定義相機(jī)

    Android 用 camera2 API 自定義相機(jī)

    本文主要介紹了Android 用 camera2 API 自定義相機(jī)的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-04-04
  • AndroidStudio實(shí)現(xiàn)微信界面設(shè)計(jì)

    AndroidStudio實(shí)現(xiàn)微信界面設(shè)計(jì)

    這篇文章帶你通過(guò)Androidstudio來(lái)實(shí)現(xiàn)微信的基礎(chǔ)界面,微信的界面主要包含了主頁(yè)、通訊錄、發(fā)現(xiàn)以及我的賬號(hào)功能區(qū),下文包含了整個(gè)開(kāi)發(fā)過(guò)程,以及解決該問(wèn)題的過(guò)程及思路并提供了源碼
    2021-10-10
  • Android 序列化的存儲(chǔ)和讀取總結(jié)及簡(jiǎn)單使用

    Android 序列化的存儲(chǔ)和讀取總結(jié)及簡(jiǎn)單使用

    這篇文章主要介紹了Android 序列化的存儲(chǔ)和讀取總結(jié)及簡(jiǎn)單使用的相關(guān)資料,Serializable接口和Parcelable接口,本文對(duì)這兩種方式進(jìn)行簡(jiǎn)單的總結(jié)和使用,需要的朋友可以參考下
    2016-12-12
  • Android布局控件之常用linearlayout布局

    Android布局控件之常用linearlayout布局

    LinearLayout是線性布局控件,它包含的子控件將以橫向或豎向的方式排列,按照相對(duì)位置來(lái)排列所有的widgets或者其他的containers,超過(guò)邊界時(shí),某些控件將缺失或消失
    2016-01-01
  • Flutter如何完成路由攔截,實(shí)現(xiàn)權(quán)限管理

    Flutter如何完成路由攔截,實(shí)現(xiàn)權(quán)限管理

    本篇介紹了利用 Fluro 路由管理實(shí)現(xiàn)路由權(quán)限攔截的兩種方式,兩種方式各有好處,使用過(guò)程中可以根據(jù)實(shí)際情況決定使用哪一種方法。
    2021-06-06
  • Android獲取與設(shè)置系統(tǒng)環(huán)境變量的方法指南

    Android獲取與設(shè)置系統(tǒng)環(huán)境變量的方法指南

    這篇文章主要給大家介紹了關(guān)于Android獲取與設(shè)置系統(tǒng)環(huán)境變量的方法指南,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位Android開(kāi)發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Android監(jiān)聽(tīng)滑動(dòng)控件實(shí)現(xiàn)狀態(tài)欄顏色切換

    Android監(jiān)聽(tīng)滑動(dòng)控件實(shí)現(xiàn)狀態(tài)欄顏色切換

    這篇文章給大家分享一個(gè)平時(shí)在滑動(dòng)頁(yè)面經(jīng)常遇到的效果:滑動(dòng)過(guò)程動(dòng)態(tài)修改狀態(tài)欄顏色,文中有詳細(xì)的示例代碼,對(duì)我們的學(xué)習(xí)或工作有一定的幫助,感興趣的小伙伴自己動(dòng)手試試吧
    2023-08-08

最新評(píng)論

瑞昌市| 九龙县| 宜章县| 澎湖县| 棋牌| 樟树市| 上思县| 哈巴河县| 内江市| 西盟| 平顶山市| 泸溪县| 阜城县| 克东县| 迭部县| 犍为县| 江城| 永泰县| 高雄县| 青浦区| 庆城县| 东兰县| 治多县| 新宁县| 区。| 邳州市| 宿迁市| 白沙| 军事| 行唐县| 辛集市| 汉阴县| 翼城县| 洛扎县| 永清县| 宜良县| 越西县| 西安市| 东乌珠穆沁旗| 清镇市| 德清县|