本篇內(nèi)容介紹了“Android如何動態(tài)添加碎片”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
站在用戶的角度思考問題,與客戶深入溝通,找到民豐網(wǎng)站設(shè)計與民豐網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、申請域名、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋民豐地區(qū)。碎片的創(chuàng)建
要使用碎片先要創(chuàng)建一個碎片,創(chuàng)建一個碎片很簡單。
1.新建一個碎片布局,fragment.xml
2. 新建一個類Fragment1.java,繼承自Fragment
注意Fragment有兩個不同的包,推薦使用support-v4中的,兼容性更好,另一個安卓4.2以下就會崩潰。在該碎片中可以進行各種操作,就如同操作一個activity。
public class Fragment1 extends Fragment {@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {View view=inflater.inflate(R.layout.fragment_questions1,container,false);Log.d("questionMain1","碎片1加載");return view;}}
碎片和活動之間的通信。雖然碎片都是嵌入在活動中顯示的,但他們之間的關(guān)系并不明顯。
1.在活動中調(diào)用碎片的方法。FragmentManagert提供了一個類似于finViewById()的方法,用于從布局文件中獲取碎片的實例。如果是動態(tài)加載的就跟簡單了加載是你就有了該碎片的實例。
2.在碎片中調(diào)用活動的方法??梢酝ㄟ^getActivity()方法得到和當(dāng)前碎片綁定的活動實例。
碎片的綁定
1.靜態(tài)綁定
在活動布局中加一個碎片標(biāo)簽,比較簡單不細(xì)說。android:name="",該標(biāo)簽為碎片對應(yīng)的類,注意要包含路徑全名。
2.動態(tài)綁定
這個才是碎片的強大之處,在程序運行時動態(tài)的添加到碎片中,根據(jù)具體情況來動態(tài)添加碎片,可以將程序界面定制得更加多樣化(多用于自適應(yīng)手機和平板的應(yīng)用)
下面的代碼以點擊按鈕。有三個碎片,通過點擊事件在一個活動中動態(tài)切換顯示的碎片。
package com.xiaobu.xiaoyan1.question;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentTransaction;import android.view.View;import android.widget.TextView;import com.xiaobu.xiaoyan1.R;import com.xiaobu.xiaoyan1.base.BaseActivity;public class QuestionsMain extends BaseActivity implements TextView.OnClickListener{private TextView fragment1;private TextView fragment2;private TextView fragment3;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_question_main);initView();}private void initView(){((TextView)findViewById(R.id.question_text)).setTextColor(getResources().getColor(R.color.colorTextChecked));fragment1=(TextView)findViewById(R.id.quiz_text_view);fragment2=(TextView)findViewById(R.id.answer_text_view);fragment3=(TextView)findViewById(R.id.chosen_text_view);fragment1.setOnClickListener(this);fragment2.setOnClickListener(this);fragment3.setOnClickListener(this);changeFragment(new QuestionsMain1());checkedChange(fragment1);}@Overridepublic void onClick(View v) {switch (v.getId()){case R.id.quiz_text_view:changeFragment(new QuestionsMain1());break;case R.id.answer_text_view:changeFragment(new QuestionsMain2());break;case R.id.chosen_text_view:changeFragment(new QuestionsMain3());break;default:break;}}private void changeFragment(Fragment fragment){FragmentManager fragmentManager=getSupportFragmentManager();FragmentTransaction transaction=fragmentManager.beginTransaction();transaction.replace(R.id.main_view,fragment);//第一個參數(shù)表示容器的id,第二個參數(shù)為碎片實例。transaction.commit();}}
“Android如何動態(tài)添加碎片”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!