Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> [android] 用fragment創建一個選項卡,androidfragment

[android] 用fragment創建一個選項卡,androidfragment

編輯:關於android開發

[android] 用fragment創建一個選項卡,androidfragment


界面布局,線性布局,水平排列,平均居中分布

四個TextView,寬度為0dip,權重都是1,內容居中顯示

主體內容部分使用LinearLayout控件,設置id

 

新建四個Fragment選項類,繼承系統的Fragment類

重寫onCreateView()方法,返回一個View對象

 

新建四個布局文件,顯示選項卡對應的內容

 

在activity中

獲取LinearLayout對象,通過findViewById()方法

先找到四個TextView控件對象

調用四個TextView對象的setOnClickListener()方法,設置點擊事件,參數:this

當前activity實現OnClickLisntenr接口,實現onClick()方法,傳遞進去View對象

 

設置默認界面

獲取FragmentManager對象,通過getFragmentManager()方法

調用FragmentManager對象的beginTransaction()方法,開啟事務,獲得FragmentTransaction對象

調用FragmentTransaction對象的replace()方法,用Fragment替換當前界面,參數:containerViewId,第一個Fragment對象

containerViewId是容器的id,就是我們定義的內容主體的id

調用FragmentTransaction對象的commit()方法,提交事務

 

在onClick()方法裡面

調用View對象的getId()方法,獲取到當前點擊的控件的id

switch判斷一下id,根據不同的id展示不同的fragment

 

FragmentTransaction對象的replace()方法裡面,參數1必須是個容器對象,我用TextView報類型轉換異常,LinearLayout控件下面必須有一個子控件

 

當前沒有動畫效果

 

package com.tsh.mytabfrag;

import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {
    private TextView tv1, tv2, tv3;
    private FragmentManager fm;
    private FragmentTransaction ft;
    private Fragment fm1, fm2, fm3;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 初始化控件
        tv1 = (TextView) findViewById(R.id.tv1);
        tv2 = (TextView) findViewById(R.id.tv2);
        tv3 = (TextView) findViewById(R.id.tv3);

        fm1 = new Fragment1();
        fm2 = new Fragment2();
        fm3 = new Fragment3();

        tv1.setOnClickListener(this);
        tv2.setOnClickListener(this);
        tv3.setOnClickListener(this);

        fm = getFragmentManager();
        ft = fm.beginTransaction();

        ft.replace(R.id.content, fm1);
        ft.commit();
    }

    @Override
    public void onClick(View v) {
        ft = fm.beginTransaction();
        switch (v.getId()) {
        case R.id.tv1:
            ft.replace(R.id.content, fm1);
            break;
        case R.id.tv2:
            ft.replace(R.id.content, fm2);
            break;
        case R.id.tv3:
            ft.replace(R.id.content, fm3);
            break;

        default:
            break;
        }
        ft.commit();
    }
}

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved