获得从ViewPager重点查看 [英] Get focused View from ViewPager

查看:136
本文介绍了获得从ViewPager重点查看的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用的是ViewPager用于切换视图与左/右轻扫。

i use the ViewPager for switching views with left/right swipe.

该ViewPager需要一个适配器,所以我已经建立了这样一句:

The ViewPager needs an Adapter, so I've built this one:

public class ListViewPagerAdapter extends PagerAdapter {

protected static final String TAG = "ListViewPagerAdapter";
protected static final int NUM_VIEWS = 3;

protected final Activity mActivity;

public ListViewPagerAdapter(Activity activity) {
    mActivity = activity;
}

@Override
public int getCount() {
    return NUM_VIEWS;
}

@Override
public void startUpdate(View container) {}

@Override
public Object instantiateItem(View container, int position) {
    // ViewPager
    ViewPager viewPager = (ViewPager) container;

    // Wird verwendet, um die Views aufzurufen
    LayoutInflater layoutInflater = mActivity.getLayoutInflater();

    // Standardmäßig ist news eingeblendet
    View view = layoutInflater.inflate(R.layout.news_fragment, null);
    // Falls sich die Position verändert, so verändert sich auch die View
    if (position == 0) {
        view = layoutInflater.inflate(R.layout.favorite_fragment, null);
    } else if (position == 2) {
        view = layoutInflater.inflate(R.layout.videos_fragment, null);
    }

    // View einblenden
    viewPager.addView(view, 0);

    return view;
}

@Override
public void destroyItem(View container, int position, Object object) {
    // ViewPager
    ViewPager viewPager = (ViewPager) container;
    // View
    View view = (View) object;

    // View löschen
    viewPager.removeView(view);
}

@Override
public void finishUpdate(View container) {}

@Override
public boolean isViewFromObject(View view, Object object) {
    View _view = (View) object;
    return view == _view;
}

@Override
public Parcelable saveState() {
    return null;
}

@Override
public void restoreState(Parcelable state, ClassLoader loader) {}
 }

现在,我想要得到的viewpager当前细致地查看。 我想getChildAt(X),但它不能正常工作。

Now, i want to get the current focused view by the viewpager. I tried getChildAt(x), but it does not work.

是否有一些例子,或者你有任何想法如何得到当前视图?

Are there some example, or do you have any idea how to get the current view?

感谢

推荐答案

这是可以通过修改[PagerAdapter.setPrimaryItem]保存当前活动的对象(​​视图,片段,...)(<一href="http://developer.android.com/reference/android/support/v4/view/PagerAdapter.html#setPrimaryItem%28android.view.ViewGroup,%20int,%20java.lang.Object%29">http://developer.android.com/reference/android/support/v4/view/PagerAdapter.html#setPrimaryItem%28android.view.ViewGroup,%20int,%20java.lang.Object%29) 。方法例如:

It is possible to save the currently active object (View, Fragment, ...) by overriding [PagerAdapter.setPrimaryItem] (http://developer.android.com/reference/android/support/v4/view/PagerAdapter.html#setPrimaryItem%28android.view.ViewGroup,%20int,%20java.lang.Object%29) method. For example:

private View mCurrentView;

@Override
public void setPrimaryItem(ViewGroup container, int position, Object object) {
    mCurrentView = (View)object;
}

这篇关于获得从ViewPager重点查看的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆