package com.example.myapplication;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import com.example.myapplication.fragment.Fragment1;
import com.example.myapplication.fragment.Fragment2;
import com.example.myapplication.fragment.Fragment3;
import com.example.myapplication.fragment.Fragment4;
import com.example.myapplication.fragment.Fragment5;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private FrameLayout fram;
private RadioGroup group;
private RadioButton but1,but2,but3,but4,but5;
private FragmentManager manager;
private FragmentTransaction transaction;
private Fragment f1,f2,f3,f4,f5;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取资源ID
fram = findViewById(R.id.fram);
group = findViewById(R.id.group);
but1 = findViewById(R.id.but1);
but2 = findViewById(R.id.but2);
but3 = findViewById(R.id.but3);
but4 = findViewById(R.id.but4);
but5 = findViewById(R.id.but5);
//实现but点击事件
but1.setOnClickListener(this);
but2.setOnClickListener(this);
but3.setOnClickListener(this);
but4.setOnClickListener(this);
but5.setOnClickListener(this);
group.check(R.id.but1);
//先行运行管理
getSupportFragmentManager().beginTransaction().replace(R.id.fram,new Fragment1()).commit();
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.but1:
getSupportFragmentManager().beginTransaction().replace(R.id.fram,new Fragment1()).commit();
break;
case R.id.but2:
getSupportFragmentManager().beginTransaction().replace(R.id.fram,new Fragment2()).commit();
break;
case R.id.but3:
getSupportFragmentManager().beginTransaction().replace(R.id.fram,new Fragment3()).commit();
break;
case R.id.but4:
getSupportFragmentManager().beginTransaction().replace(R.id.fram,new Fragment4()).commit();
break;
case R.id.but5:
getSupportFragmentManager().beginTransaction().replace(R.id.fram,new Fragment5()).commit();
break;
default:
break;
}
}
}
//Fragment1
package com.example.myapplication.fragment;
import android.graphics.Color;
import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.os.Bundle;
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.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.andy.library.ChannelActivity;
import com.andy.library.ChannelBean;
import com.bumptech.glide.Glide;
import com.example.myapplication.Fragment1_Adapter;
import com.example.myapplication.R;
import com.example.myapplication.UserBean;
import com.example.myapplication.utils.HttpUtils;
import com.example.myapplication.utils.JsonBack;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.ILoadingLayout;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.stx.xhb.xbanner.XBanner;
import com.stx.xhb.xbanner.transformers.Transformer;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class Fragment1 extends Fragment{
private ViewPager pager;
private LinearLayout line;
private HorizontalScrollView hs;
List<TextView> list;
private ArrayList<ChannelBean> channelBeans;
private Button but;
private XBanner banner;
private List<String> images = new ArrayList<>();
private TextView tv;
private ImageView image1;
private HttpUtils httpUtils;
private PullToRefreshListView pullToRefreshListView;
private Fragment1_Adapter adapter;
private List<UserBean.ResultBean.DataBean> list1 = new ArrayList<>();
private Handler handler = new Handler();
private String path ="http://apis.juhe.cn/cook/query.php?menu=%E8%82%89&dtype=&pn=&rn=&albums=&=&key=bad3cf4b1e59aaac8fb9d893208edc18";
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_fragment1,container,false);
//获取资源ID
pager = view.findViewById(R.id.pager);
line = view.findViewById(R.id.line);
hs = view.findViewById(R.id.hs);
but = view.findViewById(R.id.button);
banner = view.findViewById(R.id.banner);
pullToRefreshListView =view.findViewById(R.id.pullto);
initData();
banners();
pulltore();
getData();
return view;
}
//获取数据
private void getData() {
HttpUtils.getdata(path, getActivity(), new JsonBack() {
@Override
public void getjsondata(String json) {
Gson gson = new Gson();
UserBean userBean = gson.fromJson(json, UserBean.class);
Log.i("TAG",json);
List<UserBean.ResultBean.DataBean> list12 = userBean.getResult().getData();
Log.i("TAG",list1.size()+"");
Log.i("TAG",list1.toString());
list1.addAll(list12);
adapter.notifyDataSetChanged();
}
});
}
//上拉下拉多条目
private void pulltore() {
pullToRefreshListView.setMode(PullToRefreshListView.Mode.BOTH);
final ILoadingLayout startLodding = pullToRefreshListView.getLoadingLayoutProxy(true, false);
startLodding.setPullLabel("下拉刷新");
startLodding.setRefreshingLabel("正在加载");
startLodding.setReleaseLabel("放开刷新");
ILoadingLayout endLodding = pullToRefreshListView.getLoadingLayoutProxy(false, true);
endLodding.setReleaseLabel("上拉加载");
endLodding.setLastUpdatedLabel("正在加载");
endLodding.setReleaseLabel("放开加载");
//4.接口回调上拉下拉
Log.i("TAG","ssss");
pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
//在下拉完成后被回调
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
getData();
handler.postDelayed(new Runnable() {
@Override
public void run() {
//必须在异步中完成 在列表没有数据的时候,不在请求接口,调用当前方法
pullToRefreshListView.onRefreshComplete();
}
},2000);
//last最近的,最后一次update修改/更新
startLodding.setLastUpdatedLabel("上次更新时间:"+new SimpleDateFormat("HH:mm").format(new Date(System.currentTimeMillis())));
}
//在上拉后被调用
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
getData();
handler.postDelayed(new Runnable() {
@Override
public void run() {
//必须在异步中完成 在列表没有数据的时候,不在请求接口,调用当前方法
pullToRefreshListView.onRefreshComplete();
}
},2000);
}
});
adapter = new Fragment1_Adapter(getActivity(), list1);
pullToRefreshListView.setAdapter(adapter);
}
//Xbanner自动轮播
private void banners() {
//初始化XBanner中展示的数据
images.add("https://stc-new.8531.cn/assets/20180626/1529978600270_5b319ee8159bb81749cf4d33.jpeg");
images.add("https://stc-new.8531.cn/assets/20180625/1529887230415_5b3039fe159bb81749cf3308.jpeg");
images.add("https://stc-new.8531.cn/assets/20180619/1529410545300_5b28f3f1159bb81749cec372.jpeg");
images.add("https://stc-new.8531.cn/assets/20180615/1529030875339_5b2328db159bb81749ce6ad9.jpeg");
images.add("https://stc-new.8531.cn/assets/20180614/1528947670511_5b21e3d6159bb81749ce55b6.jpeg");
images.add("https://stc-new.8531.cn/assets/20180626/1529969080502_5b3179b8159bb81749cf4885.jpeg");
//为XBanner绑定数据
banner.setData(images,null);
//XBanner适配数据
banner.setmAdapter(new XBanner.XBannerAdapter() {
@Override
public void loadBanner(XBanner banner, View view, int position) {
Glide.with(getActivity()).load(images.get(position)).into((ImageView)view);
}
});
//设置XBanner的页面切换特效
banner.setPageTransformer(Transformer.Default);
//设置XBanner页面切换的时间,即动画时长
banner.setPageChangeDuration(1000);
}
@Override
public void onResume() {
super.onResume();
banner.startAutoPlay();
}
@Override
public void onStart() {
super.onStart();
banner.stopAutoPlay();
}
//导航栏
private void initData() {
list = new ArrayList<>();
//当前添加栏目的数据
channelBeans = 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("八卦",false));
channelBeans.add(new ChannelBean("上海",false));
channelBeans.add(new ChannelBean("天津",false));
//数据的长度
for(int i = 0;i<channelBeans.size();i++){
final TextView textView = new TextView(getActivity());
textView.setText(channelBeans.get(i).getName()+"");
textView.setTextSize(15);
textView.setId(i+1000);
//字体设置点击监听
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int id = view.getId();
pager.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(50,10,50,10);
//添加到布局
line.addView(textView,layoutParams);
//添加到集合
list.add(textView);
}
//为pager设置适配器
pager.setAdapter(new Myadapter(getActivity().getSupportFragmentManager()));
//pager的监听
pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
//滑动改变颜色
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
//list中存的是 textview
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);
//width是每一次滑动的距离+10
int width = textView.getWidth()+10;
//让scrollTo滑动 滑动距离是textview之间的距离
hs.scrollTo(width*position,0);
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
but.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//将数据传入频道管理
ChannelActivity.startChannelActivity((AppCompatActivity) getActivity(),channelBeans);
}
});
}
class Myadapter extends FragmentPagerAdapter {
public Myadapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return Fragmentone.getinstace(list.get(position).getText().toString());//创建Fragmentone进行传值
}
@Override
public int getCount() {
return list.size();
}
}
}
package com.example.myapplication.fragment;
//fragmentone
import android.os.Build;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.example.myapplication.R;
public class Fragmentone extends Fragment {
public static Fragment getinstace(String title){
//创建Fragment1
Fragmentone fragmentone = new Fragmentone();
//创建bundle
Bundle bundle = new Bundle();
bundle.putString("title",title );
//把值添加到Arguments中
fragmentone.setArguments(bundle);
return fragmentone;
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
//得到值 当展示科技的时候 在进行显示空间
Bundle arguments = getArguments();
String title = arguments.getString("title");
TextView textView = new TextView(getActivity());
textView.setText(title);
return textView;
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:layout_height="match_parent"
tools:context=".fragment.Fragment1"
>
//导航栏
<HorizontalScrollView
android:id="@+id/hs"
android:layout_width="300dp"
android:layout_height="50dp"
android:scrollbars="none"
>
<LinearLayout
android:id="@+id/line"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
></LinearLayout>
</HorizontalScrollView>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"></android.support.v4.view.ViewPager>
//频道管理按钮
<com.stx.xhb.xbanner.XBanner
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_alignParentTop="true"
android:layout_marginTop="54dp"
app:AutoPlayTime="3000"
app:pointNormal="@drawable/banner"
app:pointSelect="@drawable/banners"
app:pointsContainerBackground="#44AAAAAA"
app:pointsPosition="CENTER"
app:tipTextColor="#FFFFFFFF"
app:tipTextSize="16.0sp" />
//上拉下拉多条目
<com.handmark.pulltorefresh.library.PullToRefreshListView
android:id="@+id/pullto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/banner"
></com.handmark.pulltorefresh.library.PullToRefreshListView>
</RelativeLayout>
//1.shape圆点空心
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval"
>
<solid android:color="#fff"/>
<size android:width="20dp"
android:height="20dp"/>
<stroke
android:color="#f00"
android:width="2dp"
/>
</shape>
//2.shape圆点实心
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval"
>
<solid android:color="#f00000"/>
<size android:width="20dp"
android:height="20dp"/>
<stroke
android:color="#f00"
android:width="2dp"
/>
</shape>