1.滑動(dòng)組件Scrollview按鈕之間的相互鏈接
2.tab組件Tab和頁(yè)面聯(lián)動(dòng)的寫法
代碼
// 通過(guò)id獲取到tab標(biāo)簽欄
? ? ? ? TabList tabList=(TabList) findComponentById(ResourceTable.Id_tablist);
//? ? ? ? 獲取tab組件欄 并添加一個(gè)組件
? ? ? ? TabList.Tab tab=tabList.new Tab(getContext());
//? ? ? ? 設(shè)置tab的內(nèi)容
? ? ? ? tab.setText("推薦");
? ? ? ? //? ? ? ? 獲取tab組件欄 并添加一個(gè)組件
? ? ? ? TabList.Tab tab1=tabList.new Tab(getContext());
//? ? ? ? 設(shè)置tab的內(nèi)容
? ? ? ? tab1.setText("關(guān)注");
? ? ? ? //? ? ? ? 獲取tab組件欄 并添加一個(gè)組件
? ? ? ? TabList.Tab tab2=tabList.new Tab(getContext());
//? ? ? ? 設(shè)置tab的內(nèi)容
? ? ? ? tab2.setText("要文");
? ? ? ? //? ? ? ? 獲取tab組件欄 并添加一個(gè)組件
? ? ? ? TabList.Tab tab3=tabList.new Tab(getContext());
//? ? ? ? 設(shè)置tab的內(nèi)容
? ? ? ? tab3.setText("視頻");
//? ? ? ? 把組件添加上去
? ? ? ? tabList.addTab(tab);
? ? ? ? tabList.addTab(tab1);
? ? ? ? tabList.addTab(tab2);
? ? ? ? tabList.addTab(tab3);
//? _____________________________________________________
? ? ? ? //? ? ? ? 動(dòng)態(tài)新增tab組件欄 并添加一個(gè)組件
? ? ? ? TabList.Tab tab4=tabList.new Tab(getContext());
//? ? ? ? 設(shè)置tab的內(nèi)容
? ? ? ? tab4.setText("排榜");
? ? ? ? tabList.addTab(tab4,2);
? ? //? ? ——————————————————————————————————————————————————————
? ? ? //? 找到文本id
? ? ? ? Text text=(Text) findComponentById(ResourceTable.Id_tx1);
//? ? ? ? 重寫文本id
? ? ? ? tabList.addTabSelectedListener(new TabList.TabSelectedListener() {
//? ? ? ? ? ? 選中
? ? ? ? ? ? @Override
? ? ? ? ? ? public void onSelected(TabList.Tab tab) {
text.setText(tab.getText());? //選中后顯示的文本信息
? ? ? ? ? ? }
//? ? ? ? ? ? 從選中到未觸發(fā)的方法
? ? ? ? ? ? @Override
? ? ? ? ? ? public void onUnselected(TabList.Tab tab) {
}
//? ? ? ? 當(dāng)前tab已經(jīng)被選中,但再次被點(diǎn)擊的時(shí)候觸發(fā)
? ? ? ? ? ? @Override
? ? ? ? ? ? public void onReselected(TabList.Tab tab) {
text.setText(tab.getText()+"看過(guò)來(lái)拐云,看過(guò)來(lái)0罩怼!");? //點(diǎn)擊兩次后顯示的文本信息
? ? ? ? ? ? }
});
3.滑動(dòng)頁(yè)面PageSlide實(shí)現(xiàn)文字雙向綁定
1.主界面寫法
2.主界面的代碼導(dǎo)入
//---------標(biāo)簽頁(yè)代碼
? ? ? ? //獲取tablist組件id
? ? ? ? TabList tabList=(TabList) findComponentById(ResourceTable.Id_tab_list);
? ? ? ? //定義tablist數(shù)據(jù)
? ? ? ? String[] tabTags={"健康","運(yùn)動(dòng)","發(fā)現(xiàn)","我的"};
//? ? ? ? 創(chuàng)建一個(gè)子標(biāo)簽
//? ? ? ? 遍歷數(shù)組
? ? ? ? for (int i=0;i
//? ? ? ? 數(shù)組在本頁(yè)面找
? ? ? ? ? ? TabList.Tab tab=tabList.new Tab(this);
//? ? ? ? 數(shù)組的第i個(gè)標(biāo)簽
? ? ? ? ? ? tab.setText(tabTags[i]);
//? ? ? ? 添加到標(biāo)簽欄
? ? ? ? ? ? tabList.addTab(tab);
? ? ? ? }
3.新建立要設(shè)定的頁(yè)面
4.建立適配器叉瘩。也就是封裝類
代碼
//頁(yè)面工具類
public class PageProviderextends PageSliderProvider {
//? 需要顯示的數(shù)據(jù)
? ? private List list;
//? ? 頁(yè)面對(duì)象
private AbilitySliceslice;
//有參對(duì)象? 給數(shù)據(jù)和頁(yè)面對(duì)象賦值
? ? public PageProvider(List list, AbilitySlice slice) {
this.list = list;
? ? ? ? this.slice = slice;
? ? }
//? 獲取頁(yè)面視圖對(duì)象的個(gè)數(shù)
? ? @Override
? ? public int getCount() {
return list.size();
? ? }
//? 在指定的位置創(chuàng)建頁(yè)面視圖
? ? @Override
? ? public ObjectcreatePageInContainer(ComponentContainer componentContainer, int i) {
//? ? ? 獲取每個(gè)數(shù)據(jù)
? ? ? ? Integer id=list.get(i);
//? 獲取容器對(duì)象? 數(shù)據(jù)展示的位置
? ? ? ? Component component= LayoutScatter.getInstance(slice).parse(id,null,false);
//? ? ? 把對(duì)象添加到容器里面
? ? ? ? componentContainer.addComponent(component);
//? ? ? ? 把對(duì)象返回出來(lái)
? ? ? ? return component;
? ? }
//? 銷毀容器中的指定頁(yè)面
? ? @Override
? ? public void destroyPageFromContainer(ComponentContainer componentContainer, int i, Object o) {
componentContainer.removeComponent((Component) o);
? ? }
//? 頁(yè)面是否關(guān)聯(lián)指定的數(shù)據(jù)對(duì)象
? ? @Override
? ? public boolean isPageMatchToObject(Component component, Object o) {
return true;
? ? }
}
5.滑動(dòng)頁(yè)面顯示內(nèi)容
// 主頁(yè)面和其他頁(yè)面滑動(dòng)的代碼------------
//? ? ? ? 獲取頁(yè)面滑動(dòng)組件id
? ? ? ? PageSlider pageSlider=(PageSlider) findComponentById(ResourceTable.Id_page_slider);
//? ? ? ? ? ? 引出滑動(dòng)組件的方法
? ? ? ? List list=new ArrayList<>();
? ? ? ? list.add(ResourceTable.Layout_health);
? ? ? ? list.add(ResourceTable.Layout_sports);
? ? ? ? list.add(ResourceTable.Layout_find);
? ? ? ? list.add(ResourceTable.Layout_my);
//? ? ? ? 把頁(yè)面加載到適配器里里面
? ? ? ? PageProvider pageProvider=new PageProvider(list,this);
//? ? ? ? 適配器和pagerlider滑動(dòng)組件關(guān)聯(lián)
? ? pageSlider.setProvider(pageProvider);
? ? }
6.雙向聯(lián)動(dòng)效果展示(滑動(dòng)頁(yè)面和底部tab同步)
// 雙向聯(lián)動(dòng)效果展示
? ? ? ? pageSlider.addPageChangedListener(new PageSlider.PageChangedListener() {
@Override
//? ? ? ? ? ? 打開(kāi)頁(yè)面
? ? ? ? ? ? public void onPageSliding(int i, float v, int i1) {
}
@Override
? ? ? ? ? ? public void onPageSlideStateChanged(int i) {
}
@Override
? ? ? ? ? ? public void onPageChosen(int i) {
//? ? ? ? ? ? ? ? i當(dāng)前的索引? 角標(biāo)
? ? ? ? ? ? ? ? if (tabList.getSelectedTabIndex()!=i){
tabList.selectTabAt(i);
? ? ? ? ? ? ? ? }
}
});