1. MainActivity
package com.example.laji;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.RadioGroup;
public class MainActivity extends AppCompatActivity {
private ViewPager viewPager;
private RadioGroup radioGroup;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
radioGroup = findViewById(R.id.rad);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
switch (i){
case R.id.rad1 :
getSupportFragmentManager().beginTransaction().replace(R.id.fra,new Fra1()).commit();
break;
case R.id.rad2 :
getSupportFragmentManager().beginTransaction().replace(R.id.fra,new Fra2()).commit();
break;
case R.id.rad3 :
getSupportFragmentManager().beginTransaction().replace(R.id.fra,new Fra3()).commit();
break;
case R.id.rad4 :
getSupportFragmentManager().beginTransaction().replace(R.id.fra,new Fra4()).commit();
break;
case R.id.rad5 :
getSupportFragmentManager().beginTransaction().replace(R.id.fra,new Fra5()).commit();
break;
}
}
});
}
}
2.Fragment1
package com.example.laji;
import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
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.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.HorizontalScrollView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.andy.library.ChannelActivity;
import com.andy.library.ChannelBean;
import java.util.ArrayList;
import java.util.List;
public class Fra1 extends Fragment{
private HorizontalScrollView horizontalScrollView;
private LinearLayout linearLayout;
private ViewPager viewPager;
private List<TextView> list;
Dao dao;
private Button button;
private String[] data = {"头条","娱乐","新闻","动漫","视频","电影","电视剧","世界杯"} ;
private List<ChannelBean> channelBeans = new ArrayList<>();
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fraone,container,false);
horizontalScrollView = view.findViewById(R.id.hor);
linearLayout = view.findViewById(R.id.lin);
viewPager =view.findViewById(R.id.viewpager);
button = view.findViewById(R.id.bu);
Dao dao = new Dao(getActivity());
list = new ArrayList<>();
channelBeans.add(new ChannelBean("头条",true));
channelBeans.add(new ChannelBean("娱乐",true));
channelBeans.add(new ChannelBean("新闻",true));
channelBeans.add(new ChannelBean("动漫",true));
channelBeans.add(new ChannelBean("经济",true));
channelBeans.add(new ChannelBean("视频",true));
channelBeans.add(new ChannelBean("电影",true));
channelBeans.add(new ChannelBean("电视剧",false));
channelBeans.add(new ChannelBean("世界杯",false));
channelBeans.add(new ChannelBean("搞笑",false));
for (int i = 0;i<channelBeans.size();i++){
dao.add(channelBeans.get(i).getName());
TextView textView = new TextView(getActivity());
textView.setText(channelBeans.get(i).getName());
textView.setTextSize(20);
textView.setId(i+100);
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int id = view.getId();
viewPager.setCurrentItem(id-100);
}
});
if(i==0){
textView.setTextColor(Color.RED);
}else{
textView.setTextColor(Color.BLUE);
}
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(50,10,50,10);
linearLayout.addView(textView,layoutParams);
list.add(textView);
}
List<UserBean> list5 = dao.select();
for(int i = 0;i<list5.size();i++){
String name = list5.get(i).getName();
Log.i("TAG",name);
}
viewPager.setAdapter(new Myadpter(getActivity().getSupportFragmentManager()));
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
for(int o = 0; o< Fra1.this.list.size(); o++ ){
if(i==o){
Fra1.this.list.get(o).setTextColor(Color.RED);
}else{
Fra1.this.list.get(o).setTextColor(Color.BLUE);
}
}
TextView textView = Fra1.this.list.get(i);
int width = textView.getWidth()+10;
horizontalScrollView.scrollTo(width*i,0);
}
@Override
public void onPageSelected(int i) {
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ChannelActivity.startChannelActivity((AppCompatActivity) getActivity(),channelBeans);
}
});
return view;
}
class Myadpter extends FragmentPagerAdapter {
public Myadpter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
return com.example.laji.Fragment.getin(list.get(i).getText().toString());
}
@Override
public int getCount() {
return list.size();
}
}
}
3.Fragment1_One
package com.example.laji;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.ILoadingLayout;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import java.util.ArrayList;
import java.util.List;
public class Fragment extends android.support.v4.app.Fragment{
private ViewPager viewPager;
private int page = 1;
Mybase mybase;
private Handler handler1 = new Handler(){};
private PullToRefreshListView pullToRefreshListView;
private int i ;
private List<User1.DataBean> listt = new ArrayList<>();
private List<String> list1 = new ArrayList<>();
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
i = viewPager.getCurrentItem();
viewPager.setCurrentItem(i+1);
handler.sendEmptyMessageDelayed(1,3000);
}
};
public static Fragment getin(String title){
Fragment fragment = new Fragment();
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();
String title = arguments.getString("title");
if(title.equals("经济")){
View view = inflater.inflate(R.layout.fragment,container,false);
viewPager = view.findViewById(R.id.pager);
pullToRefreshListView = view.findViewById(R.id.pull);
Httputil.getdata("http://www.wanandroid.com/tools/mockapi/6523/article_channel_list", getActivity(), new Back() {
@Override
public void setjson(String s) {
Gson gson = new Gson();
User json = gson.fromJson(s, User.class);
List<User.DataBean.FocusListBean> list = json.getData().getFocus_list();
for(int i = 0 ;i<list.size();i++){
String url = list.get(i).getImage_url();
list1.add(url);
}
Mybasepager mybasepager = new Mybasepager(list1,getActivity());
viewPager.setAdapter(mybasepager);
handler.sendEmptyMessageDelayed(1,3000);
}
});
pullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
ILoadingLayout loadingLayoutProxy = pullToRefreshListView.getLoadingLayoutProxy(true,false);
loadingLayoutProxy.setPullLabel("下拉刷新");
loadingLayoutProxy.setRefreshingLabel("正在刷新");
loadingLayoutProxy.setReleaseLabel("放开刷新");
ILoadingLayout loadingLayoutProx = pullToRefreshListView.getLoadingLayoutProxy(false,true);
loadingLayoutProx.setPullLabel("上拉加载");
loadingLayoutProx.setRefreshingLabel("正在加载");
loadingLayoutProx.setReleaseLabel("放开加载");
pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
page = 1;
getdata();
handler1.postDelayed(new Runnable() {
@Override
public void run() {
pullToRefreshListView.onRefreshComplete();
}
},2000);
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
page+=1;
getdata();
handler1.postDelayed(new Runnable() {
@Override
public void run() {
pullToRefreshListView.onRefreshComplete();
}
},2000);
}
});
mybase = new Mybase(listt,getActivity());
pullToRefreshListView.setAdapter(mybase);
getdata();
return view;
}
return null;
}
public void getdata() {
Httputil.getdata("https://www.apiopen.top/meituApi?page="+page, getActivity(), new Back() {
@Override
public void setjson(String s) {
Gson gson = new Gson();
User1 user1 = gson.fromJson(s, User1.class);
List<User1.DataBean> data = user1.getData();
if(page==1){
listt.clear();
}
listt.addAll(data);
mybase.notifyDataSetChanged();
}
});
}
}
4.activity_main
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent"
tools:context=".MainActivity">
<FrameLayout
android:id="@+id/fra"
android:layout_weight="9"
android:layout_width="match_parent"
android:layout_height="0dp"></FrameLayout>
<RadioGroup
android:orientation="horizontal"
android:layout_weight="1"
android:id="@+id/rad"
android:layout_width="match_parent"
android:layout_height="0dp">
<RadioButton
android:id="@+id/rad1"
android:gravity="center"
android:button="@null"
android:text="1"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<RadioButton
android:id="@+id/rad2"
android:gravity="center"
android:button="@null"
android:text="1"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<RadioButton
android:id="@+id/rad3"
android:gravity="center"
android:button="@null"
android:text="1"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<RadioButton
android:id="@+id/rad4"
android:gravity="center"
android:button="@null"
android:text="1"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<RadioButton
android:id="@+id/rad5"
android:gravity="center"
android:button="@null"
android:text="1"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RadioGroup>
</LinearLayout>
5.fragment1
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent">
<LinearLayout
android:orientation="horizontal"
android:id="@+id/l"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<HorizontalScrollView
android:layout_weight="9"
android:id="@+id/hor"
android:scrollbars="none"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/lin"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"></LinearLayout>
</HorizontalScrollView>
<Button
android:layout_weight="1"
android:id="@+id/bu"
android:layout_width="50dp"
android:layout_height="50dp"
android:text="+"
/>
</LinearLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"></android.support.v4.view.ViewPager>
</LinearLayout>
6.fragment1_one
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_weight="4"
android:layout_width="match_parent"
android:layout_height="0dp"></android.support.v4.view.ViewPager>
<com.handmark.pulltorefresh.library.PullToRefreshListView
android:id="@+id/pull"
android:layout_weight="6"
android:layout_width="match_parent"
android:layout_height="0dp"></com.handmark.pulltorefresh.library.PullToRefreshListView>
</LinearLayout>