【问题标题】:Swipe View Pager Item on Button Click - Navigation在按钮单击时滑动查看寻呼机项目 - 导航
【发布时间】:2013-11-19 09:45:21
【问题描述】:

我有一个查看寻呼机项目的列表,其中每一行都有查看寻呼机项目。我想为视图寻呼机项目设置布局类型,如附图所示,用户应该也可以使用箭头点击来移动视图寻呼机。

我不知道如何实现,这是我的列表适配器和寻呼机适配器的代码:

ListView 获取视图

 ViewHolder holder;
    if(rowView==null){
        holder = new ViewHolder();
        LayoutInflater inflater = (LayoutInflater) context
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        rowView = inflater.inflate(R.layout.horizontal_list_item, parent,
                false);
        MyPagerAdapter adapter = new MyPagerAdapter(context);
        ViewPager myPager = (ViewPager) rowView.findViewById(R.id.mypager);
        myPager.setAdapter(adapter);
        myPager.setCurrentItem(4, true);

        rowView.setTag(holder);
    }
    else{
        holder = (ViewHolder) rowView.getTag();
    }

PagerAdapter

 @Override
 public Object instantiateItem(View container, final int position) {
LayoutInflater inflater = (LayoutInflater) context
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout layout = (LinearLayout) inflater.inflate(
        R.layout.inner_layout_file, null);

TextView tv_view = (TextView) layout.findViewById(R.id.text);
tv_view.setText("Example Item " + position);
((ViewPager) container).addView(layout);

});
return layout;

分页器项目布局(inner_layout_file)

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/inner_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/icon"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_marginRight="6.0dip"
        android:src="@drawable/ic_launcher" />

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:gravity="center_vertical"
        android:text="Example Value"
        android:textAppearance="?android:textAppearanceMedium" />

 </LinearLayout>

我无法找到在哪里添加箭头以及在哪里执行它们在运行时的点击。我想使用左右箭头滑动页面浏览器视图

【问题讨论】:

标签: android android-listview android-viewpager


【解决方案1】:

您应该在 ListView 中为 ViewPager 充气并在那里为其设置 Adapter

这就是你可以做到的......

public View getView(int position, View view, ViewGroup vGroup) {
        inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        vRow=view;
        final ContentHolder holder;
        if(view==null){
            holder=new ContentHolder();

                        //infalte your viewPager here

            vRow=inflater.inflate(R.layout.activity_swipe_view_pager, null);
            holder.vPager=(ViewPager) vRow.findViewById(R.id.ui_pager);
            holder.radiogrp=(RadioGroup) vRow.findViewById(R.id.ui_radiogroup);
            addRadio=new AddRadioViewSwipe(context, pageCount);
            addRadio.addRadio(holder.radiogrp);
            holder.radiogrp.getChildAt(0).setAlpha(1.0f);
            holder.vPager.setTag(R.id.ui_pager, "hold");
            vRow.setTag(holder);
        }
        else{
            holder=(ContentHolder) vRow.getTag();
        }

        pagerAdpt=new ViewPagerAdapter(context, integer,R.layout.activity_viewpager_model);
        Parcelable state=holder.vPager.onSaveInstanceState();

                 //set your adapter here

        holder.vPager.setAdapter(pagerAdpt);

        holder.vPager.setOffscreenPageLimit(integer.length);
        holder.vPager.setTag(position);
        Float den = (float) context.getResources().getDisplayMetrics().densityDpi;
        holder.vPager.setPageMargin((int) -den);
        holder.vPager.onRestoreInstanceState(state);
        holder.vPager.setOnPageChangeListener(new OnPageChangeListener() {
            @Override
            public void onPageSelected(int position) {
                for(int i=0;i<pageCount;i++){
                    holder.radiogrp.getChildAt(pageCount-(i+1)).setAlpha(0.5f);
                }                   
                holder.radiogrp.getChildAt(position).setAlpha(1.0f);
            }

            @Override
            public void onPageScrolled(int position, float arg1, int arg2) {

            }

            @Override
            public void onPageScrollStateChanged(int arg0) {
            }
        });
        return vRow;
    }

希望对你有所帮助...

【讨论】:

  • 感谢 nit 的回答,请问这里的“整数”是什么??
  • 尽管您回复的答案与我的查询不符
  • @Gaurav offcourse ...integer is an Array for my ViewPager images Integer integer[];
  • 在任何一侧设置按钮,您都可以在 ViewPager 布局中进行设置
  • 但是当我使用查看寻呼机时,我无法管理列表 onitemclicks
猜你喜欢
  • 1970-01-01
  • 2020-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多