2
我正在學習爲android開發,但我不知道如何爲片段創建UI。 我創建了一個新的活動,在創建過程中,我選擇了導航類型「選項卡+滑動」。 現在我有一個佈局xml,我無法使用WYSIWYG接口進行修改,並且如果我 - 例如 - 在類文件中使用java創建按鈕小部件,它會在每個「選項卡視圖」中創建它。如何爲選項卡式活動的每個選項卡創建UI?
我基本上想爲每個選項卡(片段)創建不同的接口。
謝謝
我正在學習爲android開發,但我不知道如何爲片段創建UI。 我創建了一個新的活動,在創建過程中,我選擇了導航類型「選項卡+滑動」。 現在我有一個佈局xml,我無法使用WYSIWYG接口進行修改,並且如果我 - 例如 - 在類文件中使用java創建按鈕小部件,它會在每個「選項卡視圖」中創建它。如何爲選項卡式活動的每個選項卡創建UI?
我基本上想爲每個選項卡(片段)創建不同的接口。
謝謝
在剛創建活動,你可以找到內部類SectionsPagerAdapter
。看看這種方法:
@Override
public Fragment getItem(int i) {
Fragment fragment = new DummySectionFragment();
Bundle args = new Bundle();
args.putInt(DummySectionFragment.ARG_SECTION_NUMBER, i + 1);
fragment.setArguments(args);
return fragment;
}
此方法爲每個選項卡返回DummySectionFragment的實例只有不同的捆綁。如果要爲每個選項卡創建具有不同視圖的片段,則應檢查變量值i
,並根據此值創建適當的片段。例如:
@Override
public Fragment getItem(int i) {
Fragment fragment;
switch(i){
case 0:
fragment = new MyFragment1();
break;
case 1:
fragment = new MyFragment2();
break;
case 3:
fragment = new MyFragment3();
break;
default:
throw new IllegalArgumentException("Invalid section number");
}
//set args if necessary
Bundle args = new Bundle();
args.putInt(DummySectionFragment.ARG_SECTION_NUMBER, i + 1);
fragment.setArguments(args);
return fragment;
}
相反DummySectionFragment
的類中創建三個類:MyFragment1,MyFragment2,MyFragment2並且對於每個,內部方法onCreateView
創建或膨脹視圖,例如:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.my_fragment1.xml, null);
return v;
}
其中R.layout.my_fragment1.xml是MyFragment1片段的佈局。
真的很感謝你。有用! – Boris 2012-07-29 14:15:36
片段子類必須是「靜態」嗎? – 2013-07-31 23:48:14
如果您詢問MyFragment1,MyFragment2等,這些只是擴展'Fragment'的公共類,每個都在分開的java文件中。 – Leszek 2013-08-01 18:06:35