package com.example.demo20180624_demo1; import android.graphics.Color; 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.os.Bundle; import android.view.View; import android.widget.HorizontalScrollView; import android.widget.LinearLayout; import android.widget.TextView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private HorizontalScrollView hs; private LinearLayout linearLayout; private ViewPager viewPager; private String title[] = {"推荐", "视频", "热点", "北京", "娱乐", "图片", "懂车帝", "体育","财经", "国际","健康"}; private List<TextView> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); hs = findViewById(R.id.hs); linearLayout = findViewById(R.id.linear); viewPager = findViewById(R.id.pager); list = new ArrayList<>(); for (int i = 0; i < title.length; i++){ TextView textView = new TextView(this); textView.setText(title[i]); textView.setTextSize(20); textView.setId(i+1000); textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int id = v.getId(); viewPager.setCurrentItem(id-1000); } }); if (i == 0){ textView.setTextColor(Color.RED); }else { textView.setTextColor(Color.BLACK); } LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewPager.LayoutParams.WRAP_CONTENT, ViewPager.LayoutParams.WRAP_CONTENT); layoutParams.setMargins(50,10,50,10); linearLayout.addView(textView,layoutParams); list.add(textView); } viewPager.setAdapter(new Myadapter(getSupportFragmentManager())); viewPager.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 = list.get(position); int width = textView.getWidth()+10; hs.scrollTo(width*position,0); } } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); } class Myadapter extends FragmentPagerAdapter{ public Myadapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return Frgment1.getInstance(list.get(position).getText().toString()); } @Override public int getCount() { return list.size(); } } }
package com.example.demo20180624_demo1; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.google.gson.Gson; import com.youth.banner.Banner; import java.util.ArrayList; import java.util.List; public class Frgment1 extends Fragment { private Banner banner; private String image = "https://www.zhaoapi.cn/ad/getAd"; private List<String> lists; private HttpUtils httpUtils; private String images; private List<ImageBean.TuijianBean.ListBean> list; public static Fragment getInstance(String title){ Frgment1 frgment1 = new Frgment1(); Bundle bundle = new Bundle(); bundle.putString("title",title); frgment1.setArguments(bundle); return frgment1; } @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment1,container,false); Bundle arguments = getArguments(); String title = arguments.getString("title"); banner = view.findViewById(R.id.banner); lists = new ArrayList<>(); httpUtils = HttpUtils.getInstance(); httpUtils.getdata(image); httpUtils.getHttpLienter(new HttpUtils.HttpLienter() { @Override public void getjsondata(String json) { Gson gson = new Gson(); ImageBean imageBean = gson.fromJson(json, ImageBean.class); list = imageBean.getTuijian().getList(); for (int i = 0; i < list.size(); i++){ images = list.get(i).getImages(); lists.add(images); } } }); if (arguments.get("title").equals("推荐")){ banner.setImageLoader(new GlideBanner()); banner.setImages(lists); banner.start(); } return view; } }
<?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=".MainActivity"> <HorizontalScrollView android:id="@+id/hs" android:layout_width="match_parent" android:scrollbars="none" android:layout_height="wrap_content"> <LinearLayout android:id="@+id/linear" 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_below="@id/hs"></android.support.v4.view.ViewPager> </RelativeLayout>
<?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"> <com.youth.banner.Banner android:id="@+id/banner" android:layout_width="match_parent" android:layout_height="200dp"></com.youth.banner.Banner> </LinearLayout>