pulltorefresh+viewpager fragment+HorizontalScrollView
来源:互联网 发布:淘宝上买的弹弓枪 编辑:程序博客网 时间:2024/06/05 05:42
import android.graphics.Color;
import android.os.Bundle;
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.view.View;
import android.view.ViewGroup;
import android.widget.HorizontalScrollView;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity{
private ViewPager vp;
private HorizontalScrollView hsv;
private LinearLayout ll;
private String[] titles;
private List<TextView> list;
private MyVPAdapter myVPAdapter;
String baseUrl = "http://gank.io/api/data/";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化获取id
initView();
FragmentManager supportFragmentManager = getSupportFragmentManager();
myVPAdapter = new MyVPAdapter(supportFragmentManager);
vp.setAdapter(myVPAdapter);
//监听
vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
for(int i=0;i<list.size();i++){
if(position==i){
list.get(i).setTextColor(Color.RED);
}else{
list.get(i).setTextColor(Color.BLACK);
}
//获取textview
TextView textView = list.get(position);
int width = textView.getWidth() + 10;
hsv.scrollTo(width*position,0);
}
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
private void initView() {
vp = (ViewPager) findViewById(R.id.vp);
hsv = (HorizontalScrollView) findViewById(R.id.hsv);
ll = (LinearLayout) findViewById(R.id.ll);
//创建数组
titles = new String[]{"福利","Android","iOS","休息","视频","拓展","资源前端","all"};
//创建集合存放textview
list = new ArrayList<>();
//创建TextView
for(int i=0;i<titles.length;i++){
//创建textview
TextView textView = new TextView(MainActivity.this);
textView.setText(titles[i]);
textView.setTextSize(20);
textView.setId(i+1000);
//点击事件
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int id = view.getId();
vp.setCurrentItem(id-1000);
}
});
//设置初始化
if(i==0){
textView.setTextColor(Color.RED);
}else{
textView.setTextColor(Color.BLACK);
}
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(20,10,20,10);
//添加到布局中
ll.addView(textView,layoutParams);
//添加到集合
list.add(textView);
}
}
//viewpager的适配器
class MyVPAdapter extends FragmentPagerAdapter{
public MyVPAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return Fragment1.getins(baseUrl+ URLEncoder.encode(titles[position])+"/");
}
@Override
public int getCount() {
return list.size();
}
}
}
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.ListView;
import android.widget.TextView;
import com.bawei.wzq.wzlibrary.utils.NetWorkUtil;
import com.bwie.skn.songkenan20170918.R;
import com.bwie.skn.songkenan20170918.bean.Bean2;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.nostra13.universalimageloader.core.ImageLoader;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
public class Fragment1 extends Fragment{
private View view;
private PullToRefreshListView pullToRefreshListView;
private String url;
private int i = 1;
private List<Bean2> list;
private MAdapter mAdapter;
public static Fragment1 getins(String title){
Fragment1 fragment1 = new Fragment1();
Bundle bundle = new Bundle();
bundle.putString("title",title);
Log.e("wzq", "getins: ");
fragment1.setArguments(bundle);
return fragment1;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.pulltorefreshlistview,container,false);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Bundle arguments = getArguments();
url = arguments.getString("title");
pullToRefreshListView = (PullToRefreshListView)view.findViewById(R.id.pulltorefreshlistview);
pullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
list = new ArrayList<>();
mAdapter = new MAdapter();
pullToRefreshListView.setAdapter(mAdapter);
new MyAsyncTask().execute(url+"10/1");
pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
list.clear();
i = 1;
new MyAsyncTask().execute(url+"10/1");
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
i++;
new MyAsyncTask().execute(url+"10/"+i);
}
});
}
class MyAsyncTask extends AsyncTask<String,Void,String>{
@Override
protected String doInBackground(String... strings) {
String string = new NetWorkUtil().getNetString(strings[0]);
return string;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
try {
JSONObject jsonObject = new JSONObject(s);
JSONArray results = jsonObject.optJSONArray("results");
for (int i =0;i<results.length();i++){
JSONArray images = results.optJSONObject(i).optJSONArray("images");
if (images!=null){
list.add(new Bean2(results.optJSONObject(i).optString("desc"),(String)images.get(0)));
}
}
} catch (JSONException e) {
e.printStackTrace();
}
mAdapter.notifyDataSetChanged();
pullToRefreshListView.onRefreshComplete();
}
}
//适配器
class MAdapter extends BaseAdapter{
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return list.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
class ViewHowder{
TextView text;
ImageView img;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
int type = getItemViewType(i);
Log.e("SKN--------------",list.get(i).getText()+"++++"+list.get(i).getImg());
ViewHowder vh;
if(type==0){
if(view==null){
view = View.inflate(getActivity(),R.layout.pulllv_item_layout,null);
vh = new ViewHowder();
vh.img=(ImageView) view.findViewById(R.id.img);
vh.text=(TextView)view.findViewById(R.id.text);
view.setTag(vh);
}else{
vh = (ViewHowder) view.getTag();
}
vh.text.setText(list.get(i).getText());
ImageLoader.getInstance().displayImage(list.get(i).getImg(),vh.img);
}
return view;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int position) {
Bean2 bean2 = list.get(position);
if (bean2.getImg()!=null){
return 0;
}else{
return 1;
}
}
}
}
- pulltorefresh+viewpager fragment+HorizontalScrollView
- PullToRefresh+ImageLoader+TabLayout+ViewPager+Fragment
- ViewPager & Fragment & HorizontalScrollView & ListView···
- 实现ViewPager+Fragment+头部标签(HorizontalScrollView)
- 横向滑动菜单:horizontalscrollview+viewpager+Fragment
- TabLayout,PullToRefresh,ImageLoader,ViewPager,Fragment联动效果
- DrawerLayout+TabLayout+ViewPager+RadioButton+Fragment+pullToRefresh+ImageLoader
- ViewPager,HorizontalScrollView
- HorizontalScrollView+Viewpager
- PullToRefresh+HorizontalScrollView+DrawerLayout
- 横向滑动菜单, HorizontalScrollView,fragment,Viewpager结合使用
- Android_横向滑动菜单, HorizontalScrollView,Fragment,Viewpager结合使用
- Android_横向滑动菜单, HorizontalScrollView,Fragment,Viewpager结合使用
- 横向滑动菜单, HorizontalScrollView,fragment,Viewpager结合使用
- 横向滑动菜单, HorizontalScrollView,fragment,Viewpager结合使用
- Android_横向滑动菜单, HorizontalScrollView,Fragment,Viewpager结合使用 +pullToRefreshListView
- lastmonthexam——DrawerLayout+TabLayout+ViewPager+PullToRefresh+Fragment+TypeTkken
- ViewPager使用2-ViewPager+顶部HorizontalScrollView+Fragment-仿GooglePlay 顶部可滑动效果
- ARM说时序
- 如何判断StringBuffer中是否包含某一个子串
- zookeeper的伪集群的搭建
- 刚刚,吴恩达讲了干货满满的一节全新AI课,全程手写板书
- spring boot日志理论详解
- pulltorefresh+viewpager fragment+HorizontalScrollView
- 史上最全的NB-IoT知识
- 740. [网络流24题] 分配问题 费用流/求最大最小费用
- TabLayout横向滑动,DrawerLayout侧滑,PullToRefreshListView上拉刷新下拉加载联用
- coci2014 contest1T4-MAFIJA——贪心
- 一元多项式的乘法和加法
- labview学习总结
- TortoiseGit 连接Git服务器不用每次输入用户名和密码的方法
- 教育奖得主说,有这种思维方式的孩子容易有更好的发展