Android_横向滑动菜单, HorizontalScrollView,Fragment,Viewpager结合使用
来源:互联网 发布:javbus最新域名2017 编辑:程序博客网 时间:2024/06/01 08:19
第一:布局
<HorizontalScrollView android:id="@+id/hs" android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:id="@+id/linearlayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"></LinearLayout></HorizontalScrollView><android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/hs"></android.support.v4.view.ViewPager>
第二:主页面中
package activity.example.com.a09_12;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.view.ViewGroup;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 String[] titles; private List<TextView> list; private HorizontalScrollView hs; private LinearLayout linearlayout; private ViewPager viewpager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取id hs = (HorizontalScrollView)findViewById(R.id.hs); linearlayout = (LinearLayout)findViewById(R.id.linearlayout); viewpager = (ViewPager)findViewById(R.id.viewpager); //创建数组,存放标题 titles = new String[] { "头条", "娱乐", "科技", "信息", "八卦", "北京", "上海", "天津","重庆", "大大燕网" }; //创建集合,存放textview list = new ArrayList<TextView>(); //创建textview for (int i = 0; i < titles.length; i++) { //创建textview TextView textView = new TextView(MainActivity.this); textView.setText(titles[i]); textView.setTextSize(20); textView.setId(i+1000); //点击事件 textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { int id = view.getId(); viewpager.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(20,10,20,10); //添加到布局中 linearlayout.addView(textView,layoutParams); //添加到集合 list.add(textView); } //为viewpager设置适配器 viewpager.setAdapter(new Myadapter(getSupportFragmentManager())); //viewpager的监听 viewpager.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是每次滑动的距离 int width = textView.getWidth()+10; //让scrollView滑动 滑动距离是textview之间的间距 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 Fragment1.getinstance(list.get(position).getText().toString()); } @Override public int getCount() { return list.size(); } }}
第三:自建Fragment中
package activity.example.com.a09_12;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.support.v4.media.session.PlaybackStateCompat;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;/** * Created by 壹颗大金星 on 2017/9/12. */public class Fragment1 extends Fragment{ public static Fragment getinstance(String title){ //创建Fragment1 Fragment1 fragment1 = new Fragment1(); //创建bundle Bundle bundle = new Bundle(); //添加值 bundle.putString("title",title); //把值添加到Arguments中 fragment1.setArguments(bundle); return fragment1; } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { //获取Arguments Bundle arguments = getArguments(); //获取值 String title = arguments.getString("title"); //创建textview TextView textView = new TextView(getActivity()); //设置值 textView.setText(title); return textView; }}
阅读全文
0 0
- Android_横向滑动菜单, HorizontalScrollView,Fragment,Viewpager结合使用
- Android_横向滑动菜单, HorizontalScrollView,Fragment,Viewpager结合使用
- Android_横向滑动菜单, HorizontalScrollView,Fragment,Viewpager结合使用 +pullToRefreshListView
- 横向滑动菜单, HorizontalScrollView,fragment,Viewpager结合使用
- 横向滑动菜单, HorizontalScrollView,fragment,Viewpager结合使用
- 横向滑动菜单, HorizontalScrollView,fragment,Viewpager结合使用
- 横向滑动菜单:horizontalscrollview+viewpager+Fragment
- 无限横向滑动菜单(自定义HorizontalScrollView+ViewPager)
- HorizontalScrollView 横向滑动菜单
- 横向菜单滑动选择viewpager+tablayout+fragment
- 网络判断+Fragment+ViewPager+XListView+TabLayout横向滑动菜单 Z2
- ViewPager和Fragment结合,利用(HorizontalScrollView)实现指示器与ViewPager同时滑动的动态效果
- 仿网易新闻APP(五)——无限横向滑动菜单(自定义HorizontalScrollView+ViewPager)
- wzq.HorizontalScrollView——横向滑动菜单
- 横向滑动ViewPager和Fragment
- android_使用ViewPager和Fragment实现滑动导航
- 横向滑动菜单Tablayout和viewpager小圆点结合滑动仿今日头条
- viewpager+fragment结合实现滑动
- webservice
- 进程的虚拟内存,物理内存,共享内存
- Fried Fish
- Spring Aop实例之xml配置
- 搜索式抓取豆瓣影片播放来源
- Android_横向滑动菜单, HorizontalScrollView,Fragment,Viewpager结合使用
- JS类选择
- springMVC+spring+MyBatis实战之搭建平台
- H5技术百问——不懂H5你就OUT啦
- 如何在一个页面上使用多个KindeEditor编辑器并将值传递到服务器端
- C++类继承(1.基类与派生类)
- 和空姐一起聊聊装饰模式
- js页面跳转
- eclipse-码云