头部为横向滑动,下面Fragment和ViewPager
来源:互联网 发布:淘宝页面怎么设计 编辑:程序博客网 时间:2024/05/22 04:42
需要用到的功能
/**
* tablayout
* viewpager +Adapter
* ImagerLoader
* AsyncTask+网络请求+gson
* XListView
*
*/
**Mainactivity**
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* tablayout
* viewpager +Adapter
* ImagerLoader
* AsyncTask+网络请求+gson
* XListView
*
*/
public class MainActivity extends AppCompatActivity {
private TabLayout tabLayout;
private ViewPager viewPager;
ArrayList<Fragment> fragmentList = new ArrayList<Fragment>();
* tablayout
* viewpager +Adapter
* ImagerLoader
* AsyncTask+网络请求+gson
* XListView
*
*/
public class MainActivity extends AppCompatActivity {
private TabLayout tabLayout;
private ViewPager viewPager;
ArrayList<Fragment> fragmentList = new ArrayList<Fragment>();
// String url = "http://gank.io/api/data/Android/10/1";
String baseUrl = "http://gank.io/api/data/";
String[] string={"福利","Android","iOS","休息视频","拓展资源","前端","all"};
private List<String> titleList;//这个是标题的集合
String baseUrl = "http://gank.io/api/data/";
String[] string={"福利","Android","iOS","休息视频","拓展资源","前端","all"};
private List<String> titleList;//这个是标题的集合
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tabLayout = (TabLayout) findViewById(R.id.tabLayout);
viewPager = (ViewPager) findViewById(R.id.viewPager);
titleList = Arrays.asList(string);
for (int i = 0; i < titleList.size(); i++) {
//URLEncoder.encode这个方法对中文进行转义;
String urlTemp = baseUrl+ URLEncoder.encode(titleList.get(i));
BlankFragment fragment = BlankFragment.getInstances(urlTemp);
fragmentList.add(fragment);
}
viewPager.setAdapter(new MPagerAdapter(getSupportFragmentManager()));
//tablayout的标题的显示模式
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
tabLayout.setupWithViewPager(viewPager);
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tabLayout = (TabLayout) findViewById(R.id.tabLayout);
viewPager = (ViewPager) findViewById(R.id.viewPager);
titleList = Arrays.asList(string);
for (int i = 0; i < titleList.size(); i++) {
//URLEncoder.encode这个方法对中文进行转义;
String urlTemp = baseUrl+ URLEncoder.encode(titleList.get(i));
BlankFragment fragment = BlankFragment.getInstances(urlTemp);
fragmentList.add(fragment);
}
viewPager.setAdapter(new MPagerAdapter(getSupportFragmentManager()));
//tablayout的标题的显示模式
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
tabLayout.setupWithViewPager(viewPager);
}
class MPagerAdapter extends FragmentPagerAdapter {
public MPagerAdapter(FragmentManager fm) {
super(fm);
}
super(fm);
}
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return fragmentList.size();
}
public int getCount() {
return fragmentList.size();
}
//需要重写个返回标题的方法;
@Override
public CharSequence getPageTitle(int position) {
return titleList.get(position);
}
}
}
@Override
public CharSequence getPageTitle(int position) {
return titleList.get(position);
}
}
}
**Fragment**
import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.bwie.xlistviewlibrary.View.XListView;
import com.bwie.xlistviewlibrary.utils.NetWordUtils;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.bwie.xlistviewlibrary.utils.NetWordUtils;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.ArrayList;
import java.util.List;
import java.util.List;
/**
* 一定要注册xListview的监听回调
*/
public class BlankFragment extends Fragment implements XListView.IXListViewListener {
* 一定要注册xListview的监听回调
*/
public class BlankFragment extends Fragment implements XListView.IXListViewListener {
private String url;
private XListView xListView;
ArrayList<Product.ResultsBean> list = new ArrayList<Product.ResultsBean>();
private XListView xListView;
ArrayList<Product.ResultsBean> list = new ArrayList<Product.ResultsBean>();
int page = 1;
private MAdapter mAdapter;
private ImageLoader imageLoaderInstance;
private MAdapter mAdapter;
private ImageLoader imageLoaderInstance;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = View.inflate(getActivity(), R.layout.frag1, null);
xListView = view.findViewById(R.id.xlv);
return view;
}
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = View.inflate(getActivity(), R.layout.frag1, null);
xListView = view.findViewById(R.id.xlv);
return view;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Bundle bundle = getArguments();
url = bundle.getString("url");
imageLoaderInstance = ImageLoader.getInstance();
mAdapter = new MAdapter();
xListView.setAdapter(mAdapter);//设置listview的适配器;
getNetData(1);//获取网络数据
xListView.setXListViewListener(this);
xListView.setPullLoadEnable(true);//设置可以加载更多;
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Bundle bundle = getArguments();
url = bundle.getString("url");
imageLoaderInstance = ImageLoader.getInstance();
mAdapter = new MAdapter();
xListView.setAdapter(mAdapter);//设置listview的适配器;
getNetData(1);//获取网络数据
xListView.setXListViewListener(this);
xListView.setPullLoadEnable(true);//设置可以加载更多;
}
public static BlankFragment getInstances(String url) {
BlankFragment blankFragment = new BlankFragment();
Bundle bundle = new Bundle();
bundle.putString("url", url);
blankFragment.setArguments(bundle);
return blankFragment;
BlankFragment blankFragment = new BlankFragment();
Bundle bundle = new Bundle();
bundle.putString("url", url);
blankFragment.setArguments(bundle);
return blankFragment;
}
private void getNetData(int pagerTemp) {
new MAsyncTask().execute(url + "/10/" + pagerTemp);
}
new MAsyncTask().execute(url + "/10/" + pagerTemp);
}
@Override
public void onRefresh() {
public void onRefresh() {
list.clear();
getNetData(1);
UiComplete();
getNetData(1);
UiComplete();
}
@Override
public void onLoadMore() {
getNetData(page++);
UiComplete();
}
public void UiComplete() {
xListView.stopRefresh();
xListView.stopLoadMore();
xListView.setRefreshTime("刚刚");
}
xListView.stopRefresh();
xListView.stopLoadMore();
xListView.setRefreshTime("刚刚");
}
/**
* 创建异步任务类
* 第一个泛型---是传递过来的接口地址
* 第二个参数是 请求接口的进度
* 第三个参数是 异步任务处理完返回的数据
*/
class MAsyncTask extends AsyncTask<String, Void, String> {
public MAsyncTask() {
super();
}
* 创建异步任务类
* 第一个泛型---是传递过来的接口地址
* 第二个参数是 请求接口的进度
* 第三个参数是 异步任务处理完返回的数据
*/
class MAsyncTask extends AsyncTask<String, Void, String> {
public MAsyncTask() {
super();
}
/**
* String... strings 这个参数是可变参数;
* 这个方法运行在子线程,去请求网络;
*/
@Override
protected String doInBackground(String... strings) {
String url = strings[0];
String netjson = NetWordUtils.getNetjson(url);
//把从网络请求的json返回回去;
Log.e("wzq", "doInBackground: " + netjson);
return netjson;
}
* String... strings 这个参数是可变参数;
* 这个方法运行在子线程,去请求网络;
*/
@Override
protected String doInBackground(String... strings) {
String url = strings[0];
String netjson = NetWordUtils.getNetjson(url);
//把从网络请求的json返回回去;
Log.e("wzq", "doInBackground: " + netjson);
return netjson;
}
/**
* 这个方法接收的参数s, 就是doInBackground返回的值;
* 这个方法是在主线程运行,可以更新ui;
*
* @param s
*/
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
Product product = gson.fromJson(s, Product.class);
List<Product.ResultsBean> results = product.getResults();
list.addAll(results);
mAdapter.notifyDataSetChanged();
}
}
}
class MAdapter extends BaseAdapter {
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return list.get(i);
}
public Object getItem(int i) {
return list.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View viewItem = View.inflate(getActivity(), R.layout.listview, null);
TextView textView = (TextView) viewItem.findViewById(R.id.textView);
ImageView imageView = (ImageView) viewItem.findViewById(R.id.imageView);
textView.setText(list.get(i).getDesc());
DisplayImageOptions options = new DisplayImageOptions.Builder()
.bitmapConfig(Bitmap.Config.RGB_565) // default 设置图片的解码类型
.build();
imageLoaderInstance.displayImage(list.get(i).getUrl(), imageView,options);
public View getView(int i, View view, ViewGroup viewGroup) {
View viewItem = View.inflate(getActivity(), R.layout.listview, null);
TextView textView = (TextView) viewItem.findViewById(R.id.textView);
ImageView imageView = (ImageView) viewItem.findViewById(R.id.imageView);
textView.setText(list.get(i).getDesc());
DisplayImageOptions options = new DisplayImageOptions.Builder()
.bitmapConfig(Bitmap.Config.RGB_565) // default 设置图片的解码类型
.build();
imageLoaderInstance.displayImage(list.get(i).getUrl(), imageView,options);
return viewItem;
}
}
}
}
}
阅读全文
0 0
- 头部为横向滑动,下面Fragment和ViewPager
- 横向滑动ViewPager和Fragment
- fragment+viewpager和横向滑动框架
- 横向头部导航+ViewPager+fragment切换效果
- 横向滑动菜单Tablayout,点击选项给下面的viewpager中的fragment传值
- ViewPager+Fragment+TabLayout实现的头部滑动
- 横向菜单滑动选择viewpager+tablayout+fragment
- 横向滑动菜单:horizontalscrollview+viewpager+Fragment
- 横向滑动菜单, HorizontalScrollView,fragment,Viewpager结合使用
- Android_横向滑动菜单, HorizontalScrollView,Fragment,Viewpager结合使用
- Android_横向滑动菜单, HorizontalScrollView,Fragment,Viewpager结合使用
- 网络判断+Fragment+ViewPager+XListView+TabLayout横向滑动菜单 Z2
- 横向滑动菜单, HorizontalScrollView,fragment,Viewpager结合使用
- 横向滑动菜单, HorizontalScrollView,fragment,Viewpager结合使用
- Android_横向滑动菜单, HorizontalScrollView,Fragment,Viewpager结合使用 +pullToRefreshListView
- 关于viewpager中嵌套的fragment中的listview的横向滑动的滑动冲突的问题。
- Fragment+ViewPager 滑动时 onResume和onPause
- ViewPager 、TabLayout和Fragment实现标签滑动
- RecyclerView(多条目)
- Objective-C对象之类对象和元类对象
- AngularJS1.5 以上版本
- 自定义控件_画圆
- 算法:输出华氏和摄氏的温度对照表
- 头部为横向滑动,下面Fragment和ViewPager
- 个人怎么申请微信公众号-微信公众号使用教程33
- Android侧滑菜单DrawerLayout
- huffman编码
- 属性动画的使用
- 《深入理解Nginx》读书笔记1:架构设计
- 064 不定积分之分部积分法 case 1-6 总结
- 春招准备日记day01
- 如何开发创建并玩转属于自己区块链的数字货币