『壹』 fragment如何刷新界面
你可擾模衫以這樣設置下:
自己寫一個
緩存類,用於保存用戶第一次從資料庫讀取出來的數據,當第2次進來的時候,先把這個緩存數據賦值上去,同事判斷網路上的數據有沒有更新,在刷到這個頁面,碼陵同時並更新資料庫!這樣比每次都從資料庫都取效緩腔果要好些!
『貳』 android 怎樣在fragment中給listview添加下拉刷新上拉載入
注意事項:
1、XListView因為添加了Header,會導致存儲的數據+1,所以賦值時需要position-1。補充:當去掉HeaderView時,position不用-1。
2、提個建議:上拉載入更多,最好在onCreate()中就執行setAdapter,然後不論是空數據、還是有數據,只用更新適配器就行了。
一、XListView
1、下載
gitHub的地址。或者從這兒下。
2、用法
導入圖中的me.maxwin.view包
提供了兩個介面:
IXListViewListener:觸發下拉刷新,上拉載入更多。實現此介面時,onLoadMore()用來上拉載入更多,onRefresh()用來下拉刷新。
『叄』 Android中Fragment怎樣刷新UI
刷新UI要在主頌絕線程,Fragment和Activity是類似的,所以在要刷新UI的地方handler發者櫻扒送消息,在主線程中定義的首昌hanler處理消息,更新UI,建議看下安卓的安卓handler機制。
『肆』 android 怎麼刷新fragment頁面
通常的做法,在onResume中發一起一個非同步的請求去拿數據,通過回調,收到返回的數據,然後更新UI。
網路獲取數據結束判斷數據有更新,然後通過set將控制項的數據更新。
舉例:
這個是我的一個fragment,我把它放在一個viewpager的fragment中
java">{
privatestaticfinalStringARG_CITY="city";
privateStringmCity;
privateTextViewtmpD;
privateTextViewtmpN;
privateSimpleDraweeViewimageD;
privateSimpleDraweeViewimageN;
(Stringcity){
BottomFragmentOnefragment=newBottomFragmentOne();
Bundleargs=newBundle();
args.putString(ARG_CITY,city);
fragment.setArguments(args);
returnfragment;
}
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
if(getArguments()!=null){
mCity=getArguments().getString(ARG_CITY);
}
}
@Override
publicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,
BundlesavedInstanceState){
//
Viewview=inflater.inflate(R.layout.bottom_fragment_one,container,false);
tmpD=(TextView)view.findViewById(R.id.tmp_d);
tmpN=(TextView)view.findViewById(R.id.tmp_n);
imageD=(SimpleDraweeView)view.findViewById(R.id.image_d);
imageN=(SimpleDraweeView)view.findViewById(R.id.image_n);
setUI();
returnview;
}
//用來設置UI,更新UI時重新從資料庫獲取數據,進行設置
publicvoidsetUI(){
Forecastforecast=mFrecastDao.getForecastByCity(mCity);
tmpD.setText(forecast.getDaily_1_max());
tmpN.setText(forecast.getDaily_1_min());
imageD.setImageURI(getImageUri(forecast.getDaily_1_code_d()));
imageN.setImageURI(getImageUri(forecast.getDaily_1_code_n()));
}
}
2.除了上面那個,還有一個類似的fragment,我想實按下按鈕後,在兩個fragment之間進行切換。下面是按鈕代碼
@Override
publicvoidonClick(Viewv){
FragmentManagerfm=getChildFragmentManager();
//開啟Fragment事務
=fm.beginTransaction();
switch(v.getId())
{
caseR.id.button_left:
if(mBottomOne==null)
{
mBottomOne=newBottomFragmentOne().newInstanceOne(mCity);
}//使用當前Fragment的布局替代id_content的控制項
transaction.replace(R.id.bottom_weather,mBottomOne);
break;
caseR.id.button_right:
if(mBottomTwo==null)
{
mBottomTwo=newBottomFragmentTwo().newInstanceTwo(mCity);
}
transaction.replace(R.id.bottom_weather,mBottomTwo);
break;
}
//事務提交
transaction.commit();
}
3.下面是viewpager中的fragment用來更新上面兩個fragment數據的方法。
publicvoidUpdateUI(){
mBottomOne.setUI();
mBottomTwo.setUI();
}
『伍』 android fragment 刷新功能
本文 介紹兩點 已是fragment的切換 一是fragment刷新
先說第一點 fragment的切換
目前fragment在開發中應用越來越廣泛 當然也非常方便
而我們切換fragment 也有兩中方式
第一種是replace的方法進行的 這種方式要看運用場景 用起來很方便 但是個人感覺效果並不好 因為這種方式進行切換得話 首先他會remove掉當前的fragment,然後在new 一個新的fragment進行add,也就是說當前fragment中的所有東西都是重新載入的 所以個人不建議使用這種方式進行fragment的高頻率切換 這種只適合fragment切換和使用次數比較少的情況
第二種是show+hide 進行fragment切換 這種方式相比第一指攜鉛種可能會復雜一點 首先要建立幾個fragment 開始事務 然後判斷添加 舉個例子
1 創建fragment……
2 添加事務 android.app.FragmentTransaction ft = getFragmentManager().beginTransaction();
–#在添加之前先進行判斷隱藏#–
// 這是hide fragment 的方法
onHideFragment(ft);
3 判斷添加
if (homeFragment==null){
homeFragment = new HomeFragment();
ft.add(R.id.content,homeFragment);
}else {
ft.show(homeFragment);
}
4 判斷隱藏
if (homeFragment!=null){
ft.hide(homeFragment);
}
5 添加一個默認顯示fragment 也就是你進入activity需要顯示的那個
好 此時你就完成了使用hide + show 進行fragment切換了
現在我們說第二點 就是fragment的刷新需求
我們可能會需要fragment的刷新功能 例如說是我首頁使用fragment 進行功能切換時 希望返回到之前的fragment可以刷新 或者返回到activity時 fragment也可以刷新 本人使用了 兩種方法進行fragment的隱歲刷新 我想大部分應該都會使用第一種 返回activity時 fragment刷新 就是重寫acvitity的onstart() 方法進行刷新fragment的數據 但是這唯好是有弊端的 第一就是假如你使用了listview或者gridview 時會出現重復載入的情況 所以使用這種方法時 你就要進行清空數據並刷新適配器就可以避免了
第二種 就是使用hide+show時 在fragment進行切換時 刷新fragment 此時會有這樣一個這樣的方法 onHiddenChanged(boolean hidden);看方法名 你也可以看出來 就是在hide有變化時使用 hidden參數是boolean 當hidden為true時表示fragment在hide 此時不必更新數據 當hidden為false時 他就不隱藏了 此時更新
if (hidden){
return;
}else {
list.clear();
getSellList();
}
list是要清空的 避免重復載入
–#onHiddenChanged(boolean hidden); 這是fragment的方法哦 !!!#–
本文 到此結束 希望對各位有所幫助 有問題可以評論區提出 大家一起進步
『陸』 Android中Fragment怎樣刷新UI
在activity 的onActivityResult 調虛攜罩用fragment 的onActivityResult 方法隱汪,
例如getSupportFragmentManager().getFragments().get(mViewPager.getCurrentItem()).onActivityResult(requestCode, requestCode, data);
然差鬧後在fragment的onActivityResult做處理