1. 程式人生 > >android開發首頁基本框架搭建

android開發首頁基本框架搭建

第一點:  專案的需求介紹

android 開發中首頁的搭建一般都是底部四部分(是個view就可以),上面是fragment,要實現的效果是,第一,不可以滑動;第二,第一次啟動進來的時候預設啟動一個fragment,點選哪一個就讓哪一個加載出來;第三,一旦載入一次後,再次點選這個fragment就不要讓他在重複載入了。

第二點:fragment的幾個方法介紹

主要的方法有,replace,add,show,hide,remove,而replace和add的區別就是,replace切換的時候會將fragment的生命週期走完,也就是說每一次切換這個fragment都會重新載入;而add切換的時候不會銷燬前一個fragment,這樣就可以使載入完一次後就不需要在重新載入了,呼叫show方法就可以了。 

第三點:主要程式碼的展示

    /**
     * 設定進去預設展示的fragment
     *
     * @param fragment
     */
    public void setDefaultFragment(Fragment fragment) {
        fragmentTransaction = getSupportFragmentManager().beginTransaction();
        //預設新增一個fragment
        fragmentTransaction.add(R.id.content, fragment).commit();
        //add的話fragment有兩層fragment,mFragment是中間轉換的fragment,每一次切換的時候都把切換的值賦給他
        mFragment = fragment;
        text1.setTextColor(ContextCompat.getColor(this, R.color.colorAccent));
    }
 /**
     * 切換fragment的方法
     *
     * @param fragment
     */
    public void switchFragment(Fragment fragment, TextView textView) {
        if (mFragment != fragment) {//選擇的不是上一次設定的那個fragment
            fragmentTransaction = getSupportFragmentManager().beginTransaction();
            //判斷是否新增過
            if (!fragment.isAdded()) {//沒有被新增過,隱藏當前的fragment,add下一個到Activity中
                fragmentTransaction.hide(mFragment).add(R.id.content, fragment).commit();
            } else {//已經被新增過,隱藏當前的fragment,show下一個到Activity中
                fragmentTransaction.hide(mFragment).show(fragment).commit();
            }
            mFragment = fragment;//賦值給轉化的mFragment
        } else {
            Toast.makeText(this, "我是剛才選過的", Toast.LENGTH_SHORT).show();
        }
        textView.setTextColor(ContextCompat.getColor(this, R.color.colorAccent));
    }