程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#中WebBroeser控件用法實例教程

C#中WebBroeser控件用法實例教程

編輯:C#入門知識

C#中WebBroeser控件用法實例教程。本站提示廣大學習愛好者:(C#中WebBroeser控件用法實例教程)文章只能為提供參考,不一定能成為您想要的結果。以下是C#中WebBroeser控件用法實例教程正文


在android運用中,多屏滑動是一種很罕見的作風,沒有采取viewpager的代碼完成會很長,假如采取ViewPager,代碼就會短許多,然則應用ViewPager也有弊病:須要導入android-support-v4.jar、細節沒法掌握。不外如今情形曾經紛歧樣了,android-support-v4中供給了許多適用的功效,以致於如今新建一個android工程默許都邑導入這個jar包。那我們就也采取viewpager來做滑動吧。別的一個概念就是Fragment和FragmentActivity,Fragment是一個特別的類,有著和activity分歧的性命周期和view分歧的界面,也就是Fragment就等於具有性命周期的View,然則,要留意的是:Fragment其實不是View,它和View沒有繼續關系。應用Fragment的利益是:Fragment可以重用,並且每一個Fragment可以在外部處置本身的營業就像activity一樣,如許模塊間耦合較低,比把一切的營業都寫在一個activity外部邏輯要清楚許多。還有就是,因為每一個模塊的營業都在Fragment外部來完成,如許activity只需治理好幾個Fragment就好了,不須要做和營業相干的工作,最初,Fragment可以用來做分歧分辯率機型的適配。Fragment在sdk(android 3.0及更高)和android-support-v4外面都有,然則因為兼容性的成績,我們只能應用android-support-v4外面的Fragment,除非你想你的apk只跑在3.0今後的android手機上,FragmentActivity的情形和Fragment相似。關於Fragment和FragmentActivity,其實有一些根本的用法須要懂得一下,然則斟酌到Fragment不是本文的重點,所以這裡就不引見了,別的,本文只用Fragment做了一個簡略的界面,年夜家應當一看就懂,好了,言歸正傳。

ViewPager + Fragment 常常用到  代碼是從   actionbarsherlock 中提掏出來的,這個後果都曉得是 滑動來切換的。直接上代碼了
在這裡簡略解釋一下 FragmentStatePagerAdapter 和 FragmentPagerAdapter
2個adapter:
第一種 fragment狀況adapter -  在以後只會存在   前1個fragment  以後 fragment 和 下1個 fragment   其他燒毀 ,合適加載多半據;
第二種 FragmentPagerAdapter  - 全體存在,所以不太合適加載 年夜量的數據 如圖片甚麼的,很輕易內存溢出。

工程構造:

https://www.aspphp.online/bianchen/UploadFiles_4619/201707/2017072809322826.jpg (321×250)

1.activity adapter 在一路 (static類型的 Fragment)

public class ViewPageFragment extends FragmentActivity { 
   
  //這個是有若干個 fragment頁面 
  static final int NUM_ITEMS = 5; 
  private MyAdapter  mAdapter; 
  private ViewPager  mPager;   
  private int nowPage; 
    
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.pagers_fragment_main); 
    mAdapter = new MyAdapter(getSupportFragmentManager() ); 
    mPager = (ViewPager)findViewById(R.id.mypagers_pager); 
    mPager.setAdapter(mAdapter); 
  } 
 
 
  /** 
   * 有狀況的 ,只會有前3個存在 其他燒毀, 前1個, 中央, 下一個 
   */ 
  public static class MyAdapter extends  FragmentStatePagerAdapter { 
    public MyAdapter(FragmentManager fm) { 
      super(fm); 
    } 
 
    @Override 
    public int getCount() { 
      return NUM_ITEMS; 
    } 
 
    //獲得每一個item 
    @Override 
    public Fragment getItem(int position) { 
      return ArrayFragment.newInstance(position); 
    } 
 
     
    // 初始化每一個頁卡選項 
    @Override 
    public Object instantiateItem(ViewGroup arg0, int arg1) { 
      // TODO Auto-generated method stub 
      return super.instantiateItem(arg0, arg1); 
    } 
     
    @Override 
    public void destroyItem(ViewGroup container, int position, Object object) { 
      System.out.println( "position Destory" + position); 
      super.destroyItem(container, position, object); 
    } 
     
  } 
 
   
  /** 
   * 無狀況的 會全體加載著, 這個合適大批的 特殊多的圖片啊啥的 照樣用 FragmentStatePagerAdapter 
   * @author lilei 
   */ 
//  public static class MyAdapter extends FragmentPagerAdapter { 
//   public MyAdapter(FragmentManager fm ) { 
//      super(fm); 
//     
//    } 
// 
//    @Override 
//    public int getCount() { 
//      return NUM_ITEMS; 
//    } 
// 
//    @Override 
//    public Fragment getItem(int position) { 
//     // 前往響應的 fragment 
//      return ArrayFragment.newInstance(position); 
//    } 
//     
//    @Override 
//    public void destroyItem(ViewGroup container, int position, Object object) { 
//     System.out.println( "position Destory" + position); 
//     super.destroyItem(container, position, object); 
//    } 
//  } 
   
   
  /** 
   * 一切的 每一個Fragment 
   */ 
  public static class ArrayFragment extends Fragment { 
     
    int mNum; 
    static ArrayFragment newInstance(int num) { 
      ArrayFragment array= new ArrayFragment(); 
      Bundle args = new Bundle(); 
      args.putInt("num", num); 
      array.setArguments(args); 
      return array; 
    } 
 
     
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      mNum = getArguments() != null ? getArguments().getInt("num") : 1; 
      System.out.println("mNum Fragment create ="+ mNum); 
    } 
 
     
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) { 
       System.out.println("onCreateView = "); 
       //在這裡加載每一個 fragment的顯示的 View 
       View v = null; 
        
       if(mNum == 0){ 
         v = inflater.inflate(R.layout.pagers_fragment1, container, false); 
         ((TextView)v.findViewById(R.id.textView1)).setText(mNum+ "= mNum");             
       }else if(mNum == 1){ 
         v = inflater.inflate(R.layout.pagers_fragment1, container, false); 
         ((TextView)v.findViewById(R.id.textView1)).setText(mNum+ "= mNum"); 
       }else if(mNum == 2){ 
         v = inflater.inflate(R.layout.pagers_fragment1, container, false); 
         ((TextView)v.findViewById(R.id.textView1)).setText(mNum+ "= mNum"); 
       }else{ 
         v = inflater.inflate(R.layout.pagers_fragment1, container, false); 
         ((TextView)v.findViewById(R.id.textView1)).setText(mNum+ "= mNum"); 
       }    
      return v; 
    } 
 
    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
      System.out.println("onActivityCreated = "); 
      super.onActivityCreated(savedInstanceState);   
    } 
     
    @Override 
    public void onDestroyView(){ 
      System.out.println(mNum + "mNumDestory"); 
      super.onDestroyView(); 
    } 
     
    @Override 
    public void onDestroy(){ 
      super.onDestroy();  
    } 
     
  } 
} 

2. 和 1也沒甚麼太年夜差別( 個頂用處 看小我了 )

public class ViewPageFragmentCS extends FragmentActivity { 
   
  //這個是有若干個 fragment頁面 
  private MyAdapter  mAdapter; 
  private ViewPager  mPager;  
  private List<Entity> list = new ArrayList<ViewPageFragmentCS.Entity>();; 
 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.pagers_fragment_main); 
     
    for (int i = 0; i < 7 ; i++) { 
      Entity ee = new Entity(); 
      ee.name = "ll"+ i; 
      ee.age = ""+ i; 
      list.add(ee); 
    } 
    mAdapter = new MyAdapter(getSupportFragmentManager(),list); 
    mPager = (ViewPager)findViewById(R.id.mypagers_pager); 
    mPager.setAdapter(mAdapter); 
  } 
 
 
   
  private class Entity{ 
    public String name; 
    public String age; 
  } 
   
   
  // 在這裡你可以傳 list<Fragment> 也能夠傳遞 list<Object>數據 
  public class MyAdapter extends FragmentStatePagerAdapter { 
    List<Entity> list_ee; 
     
    public MyAdapter(FragmentManager fm, List<Entity> ee) { 
      super(fm); 
      this.list_ee = ee ; 
    } 
 
    @Override 
    public int getCount() { 
      return list_ee.size(); 
    } 
 
    // 初始化每一個頁卡選項 
    @Override 
    public Object instantiateItem(ViewGroup arg0, int position) { 
       
      ArrayFragment ff = (ArrayFragment)super.instantiateItem(arg0, position); 
      ff.setThings(list_ee.get(position),position); 
      return ff; 
    } 
     
    @Override 
    public void destroyItem(ViewGroup container, int position, Object object) { 
      System.out.println( "position Destory" + position); 
      super.destroyItem(container, position, object); 
    } 
 
     
    @Override 
    public Fragment getItem(int arg0) { 
      // TODO Auto-generated method stub 
      return new ArrayFragment(); 
    } 
     
  } 
 
   
   
  /** 
   * 一切的 每一個Fragment 
   */ 
  public class ArrayFragment extends Fragment { 
    private Entity ee; 
    private int position; 
     
    public void setThings(Entity ee,int position){ 
      this.ee =ee ;   
      this.position = position; 
    } 
 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
    } 
 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) { 
       System.out.println("onCreateView = "); 
       //在這裡加載每一個 fragment的顯示的 View 
       View v = inflater.inflate(R.layout.pagers_fragment1, container, false); 
      ((TextView)v.findViewById(R.id.textView1)).setText(ee.name+ "= ee.Name -=age"+ ee.age);  
      return v; 
    } 
 
    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
      System.out.println("onActivityCreated = "); 
      super.onActivityCreated(savedInstanceState);   
    } 
     
    @Override 
    public void onDestroyView(){ 
      System.out.println("onDestroyView = "+ position); 
      super.onDestroyView(); 
    } 
     
    @Override 
    public void onDestroy(){ 
      System.out.println("onDestroy = "+ position); 
      super.onDestroy();  
    }     
  } 
} 

直接復制曩昔便可以看後果了   別忘卻  V4包,xml 結構文件 本身隨意全部吧。
滑動到第3個頁面的時刻可以看到第1個頁面燒毀第4個生成,以後存在2、3、4:

https://www.aspphp.online/bianchen/UploadFiles_4619/201707/2017072809322877.jpg (630×136)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved