在很多的新闻页面我们都可以看到频道管理的页面,如图所示:

接下来就教大家一个简易版的频道管理模式:
1、首先在项目的build下注册
allprojects {
repositories {
jcenter()
//下面这句才是加上的,上面的自带 的
maven {url "https://jitpack.io"}
}
}
2、然后在app下的build中导入依赖
compile 'com.github.andyoom:draggrid:v1.0.1'
--------当依赖导入完成,现在就可以做一个频道管理,鉴于之前给大家分享过HorizontalScrollView的入门技术
所以就在原有的HorizontalScrollView上进行更改完成我们的频道管理功能

在Activity中声明我们的控件
接下来调用自己写的两个方法

那么两个方法都是什么意思呢?接下来就是第一个initview方法,具体作用就是找到我们的控件ID

第二个方法我也标上了特别清楚地注释

private void initData() { for (int i= 0;i<channelBeans.size();i++){ //通过for循环添加TextView至我们的滚动视图 TextView textView = new TextView(this);//声明新的TextView textView.setText(channelBeans.get(i).getName().toString());//给TextView设置文字 textView.setTextSize(20);//设置文字大小 textView.setId(i+2000);//设置文字ID textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int id = v.getId(); viewPager.setCurrentItem(id-2000); } }); 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); linearLayout.addView(textView,layoutParams);//添加到布局中 list.add(textView);//给textview添加到集合 } //为viewpager设置适配器 viewPager.setAdapter(new Myadapter(getSupportFragmentManager())); //viewpager的监听 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);//获取当前的textview int width = textView.getWidth()+10;//width是每次滑动的距离 horizontalScrollView.scrollTo(width*position,0);//让scrollView滑动 滑动距离是textview之间的间距 } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ChannelActivity.startChannelActivity(MainActivity.this,channelBeans);//将数据传入频道管理 } }); } class Myadapter extends FragmentPagerAdapter{ public Myadapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return Fragment01.getInstance(list.get(position).getText().toString()); } @Override public int getCount() { return list.size(); } }
这样一个简单的频道管理就做好了
本文介绍了如何创建一个简易的频道管理页面。通过在项目build中注册并导入特定依赖,然后在HorizontalScrollView基础上进行修改,利用initView方法初始化控件,通过自定义方法实现功能,从而完成频道管理功能。
443

被折叠的 条评论
为什么被折叠?



