horizontal布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<HorizontalScrollView
android:id="@+id/hsview"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="#00eeff">
<LinearLayout
android:id="@+id/linear_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:orientation="horizontal"></LinearLayout>
</HorizontalScrollView>
<android.support.v4.view.ViewPager
android:id="@+id/zhuye_viewpager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="9"></android.support.v4.view.ViewPager>
</LinearLayout>
MainFragment页面
public class MainFragment extends Fragment{
private String title;
private PullToRefreshListView refreshListView;
private List<MyData.ResultBean.DataBean> mlist = new ArrayList<MyData.ResultBean.DataBean>();
String uri = "tt";
String path = "http://result.eolinker.com/k2BaduF2a6caa275f395919a66ab1dfe4b584cc60685573?uri=" + uri + "";
private MyData myData;
private MyAdapter pullAdapter;
public static Fragment getinstance(String title){
MainFragment mainFragment = new MainFragment();
Bundle bundle = new Bundle();
bundle.putString("title",title);
mainFragment.setArguments(bundle);
return mainFragment;
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
Bundle arguments = getArguments();
title = arguments.getString("title");
/* TextView textView = new TextView(getActivity());
textView.setText(title);*/
refreshListView = new PullToRefreshListView(getActivity());
refreshListView.setMode(PullToRefreshBase.Mode.BOTH);
refreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
uri = "tt";
mlist.clear();
initData();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
uri ="gn";
initData();
}
});
if (title.equals("ANDROID")){
uri = "tt";
initData();
}else if(title.equals("IOS")){
uri = "shehui";
initData();
}else if(title.equals("福利")){
uri = "gn";
initData();
}
return refreshListView;
}
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initData();
}
private void initData() {
new MyTask<String>(getActivity(),path,"GET").setTaskListener(new MyTask.TaskListener() {
@Override
public void result(String t) {
//Log.i("aa", "result: "+t);
Gson gson = new Gson();
myData = gson.fromJson(t, MyData.class);
List<MyData.ResultBean.DataBean> dataBeans = myData.getResult().getData();
mlist.addAll(dataBeans);
if (pullAdapter==null){
pullAdapter = new MyAdapter(getActivity(), mlist);
refreshListView.setAdapter(pullAdapter);
pullAdapter.notifyDataSetChanged();
}else{
pullAdapter.notifyDataSetChanged();
}
refreshListView.onRefreshComplete();
}
}).execute();
}
}
Fragment页面
public class ZhuyeFragment extends Fragment {
private HorizontalScrollView hsview;
private LinearLayout linear_layout;
private ViewPager zhuye_viewpager;
private String[] titles;
private List<TextView> textViewList;
@Nullable
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.zhuye_layout, container, false);
//初始化控件
hsview = view.findViewById(R.id.hsview);
linear_layout = view.findViewById(R.id.linear_layout);
zhuye_viewpager = view.findViewById(R.id.zhuye_viewpager);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
titles = new String[]{"头条", "社会", "国内"};
MyViewPagerAdapter viewPagerAdapter = new MyViewPagerAdapter(getActivity().getSupportFragmentManager(), titles);
zhuye_viewpager.setAdapter(viewPagerAdapter);
//创建集合
textViewList = new ArrayList<>();
for (int i = 0; i < titles.length; i++) {
TextView textView = new TextView(getActivity());
textView.setText(titles[i]);
textView.setTextSize(20);
textView.setTextColor(Color.BLACK);
textView.setId(i + 100);
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int id = v.getId();
zhuye_viewpager.setCurrentItem(id - 100);
}
});
if (i == 0) {
textView.setTextColor(Color.BLACK);
} else {
textView.setTextColor(Color.WHITE);
}
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(10, 10, 10, 10);
linear_layout.addView(textView, layoutParams);
textViewList.add(textView);
}
zhuye_viewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
for (int j = 0; j < textViewList.size(); j++) {
if (j == i) {
textViewList.get(j).setTextColor(Color.BLACK);
} else {
textViewList.get(j).setTextColor(Color.WHITE);
}
}
TextView textView = textViewList.get(i);
int width = textView.getWidth() + 10;
hsview.scrollTo(width * i, 0);
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
}
}
网络请求
public class MainFragment extends Fragment implements XListView.IXListViewListener {
private String title;
String url1 = "tt";
private String data;
private XListView xListView;
private MyXlistAdapter xlistAdapter;
private float scaledTouchSlop;
private Toolbar toolbar;
private ObjectAnimator mAnimator;
private MyDate myDate;
private Toolbar tool_bar;
String mapth = "http://result.eolinker.com/k2BaduF2a6caa275f395919a66ab1dfe4b584cc60685573?uri=" + url1 + "";
public static Fragment getinstance(String title) {
MainFragment fragment = new MainFragment();
Bundle bundle = new Bundle();
bundle.putString("title", title);
fragment.setArguments(bundle);
return fragment;
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
Bundle arguments = getArguments();
title = arguments.getString("title");
/* TextView textView = new TextView(getActivity());
textView.setText(title);*/
xListView = new XListView(getActivity());
xListView.setPullLoadEnable(true);
xListView.setPullRefreshEnable(true);
xListView.setXListViewListener(this);
if (xListView.getCheckedItemPosition() == 0) {
xListView.setDividerHeight(0);
} else {
xListView.setDividerHeight(20);
}
if (title.equals("头条") || title.equals("每日推荐")) {
url1 = "tt";
}
if (title.equals("社会") || title.equals("干货定制")) {
url1 = "shehui";
}
if (title.equals("国内") || title.equals("福利")) {
url1 = "gn";
}
return xListView;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
xListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(getActivity(),WebActivity.class);
intent.putExtra("url",myDate.getResult().getData().get(position).getUrl());
startActivity(intent);
}
});
}
@Override
public void onStart() {
super.onStart();
getData();
}
@Override
public void onRefresh() {
new Runnable() {
@Override
public void run() {
getData();
}
}.run();
onLoad();
}
@Override
public void onLoadMore() {
new Runnable() {
@Override
public void run() {
getData();
xlistAdapter.notifyDataSetChanged();
}
}.run();
onLoad();
}
public void getData() {
if (HttpConnection.getNet(getActivity())) {
Toast.makeText(getActivity(), "网络已连接", Toast.LENGTH_SHORT).show();
new AsyncTask().execute();
} else {
Toast.makeText(getActivity(), "请检查网络", Toast.LENGTH_SHORT).show();
}
}
public void onLoad() {
xListView.stopRefresh();
xListView.stopLoadMore();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String format = simpleDateFormat.format(new Date());
xListView.setRefreshTime(format);
}
class AsyncTask extends android.os.AsyncTask<Integer, Integer, String> {
String mapth = "http://result.eolinker.com/k2BaduF2a6caa275f395919a66ab1dfe4b584cc60685573?uri=" + url1 + "";
@Override
protected String doInBackground(Integer... integers) {
return HttpUrlUtil.getHttp(getActivity(), mapth, "GET");
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
myDate = gson.fromJson(s, MyDate.class);
if (myDate != null) {
xlistAdapter = new MyXlistAdapter(getActivity(), myDate);
xListView.setAdapter(xlistAdapter);
}
}
}
}
adapter
public class MyViewPagerAdapter extends FragmentPagerAdapter {
private String titles[];
public MyViewPagerAdapter(FragmentManager fm, String[] titles) {
super(fm);
this.titles = titles;
}
@Override
public Fragment getItem(int i) {
return MainFragment.getinstance(titles[i]);
}
@Override
public int getCount() {
return titles.length;
}
}