Android 在按钮上滑动查看寻呼机项目单击-导航
我有一个查看寻呼机项目列表,其中每一行都有查看寻呼机项目。我想为一个视图寻呼机项目创建一个布局类型,如所附的图片所示,用户也应该能够使用箭头单击来移动视图寻呼机 我无法获得如何实现相同的功能,以下是我的列表适配器和寻呼机适配器代码: ListView-GetViewAndroid 在按钮上滑动查看寻呼机项目单击-导航,android,android-listview,android-viewpager,Android,Android Listview,Android Viewpager,我有一个查看寻呼机项目列表,其中每一行都有查看寻呼机项目。我想为一个视图寻呼机项目创建一个布局类型,如所附的图片所示,用户也应该能够使用箭头单击来移动视图寻呼机 我无法获得如何实现相同的功能,以下是我的列表适配器和寻呼机适配器代码: ListView-GetView ViewHolder holder; if(rowView==null){ holder = new ViewHolder(); LayoutInflater inflater = (La
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;
寻呼机项目布局(内部布局文件)
我无法找到在运行时在何处添加箭头以及在何处执行单击。我想使用左右两侧的箭头滑动寻呼机视图您应该在ListView中为寻呼机充气,并在那里设置适配器 这就是你能做到的
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;
}
public View getView(int位置、视图视图、视图组vGroup){
充气器=(充气器)上下文
.getSystemService(上下文布局\充气机\服务);
vRow=视图;
最终内容持有人;
如果(视图==null){
holder=新的ContentHolder();
//在此处插入您的viewPager
vRow=充气机。充气(R.layout.activity\u swipe\u view\u pager,空);
holder.vPager=(ViewPager)vRow.findViewById(R.id.ui_pager);
holder.RadioRP=(RadioGroup)vRow.findViewById(R.id.ui_RadioGroup);
addRadio=新的AddRadioViewSwipe(上下文、页面计数);
addRadio.addRadio(支架.射线照片);
支架.射线照片.getChildAt(0).setAlpha(1.0f);
holder.vPager.setTag(R.id.ui_pager,“hold”);
vRow.setTag(支架);
}
否则{
holder=(ContentHolder)vRow.getTag();
}
pagerAdpt=新的ViewPagerAdapter(上下文、整数、R.layout.activity\u viewpager\u模型);
可包裹状态=holder.vPager.onSaveInstanceState();
//在这里设置适配器
固定器vPager setAdapter(pagerAdpt);
holder.vPager.setOffscreenPageLimit(整数长度);
保持架.vPager.setTag(位置);
Float den=(Float)context.getResources().getDisplayMetrics().densityDpi;
holder.vPager.setPageMargin((int)-den);
holder.vPager.onRestoreInstanceState(状态);
holder.vPager.setOnPageChangeListener(新的OnPageChangeListener(){
@凌驾
已选择页面上的公共无效(内部位置){
对于(int i=0;我已经看到了:。上的示例,我相信这与它们实现的差不多,只是使用制表符。@cYrixmorten不,也不想看到。它更复杂,并且不是较低版本的解决方案too@Raghunandan,你能帮我找到答案吗?我能问一下这里的“整数”是什么吗?尽管你给出了答案我的回答不符合我的要求query@Gaurav当然…integer是我的ViewPager图像的数组integer[];对于任意一侧的设置按钮,您都可以在ViewPager布局中进行设置,但在使用view pager时,我无法管理单击列表
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;
}