android - 从 ViewPager 获取焦点 View

标签 android view pager android-viewpager viewpage

我使用 ViewPager 通过左右滑动切换 View 。

ViewPager 需要一个 Adapter,所以我构建了这个:

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 获取当前的焦点 View 。 我尝试了 getChildAt(x),但它不起作用。

有没有一些例子,或者你知道如何获得当前 View ?

谢谢

最佳答案

可以通过覆盖 PagerAdapter.setPrimaryItem 来保存当前 Activity 的对象( View 、 fragment ...)方法。例如:

private View mCurrentView;

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

关于android - 从 ViewPager 获取焦点 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6807262/

相关文章:

android按钮精细文本对齐

android - 通过 R 类迭代

c# - MVC-3 ASP.NET 共享 View -重定向-Razor

c# - 寻呼机 HTML 查看器

ubuntu - Debian Ubuntu : most pager does not print the required foreground colors

git - 当我使用 "git log"命令时,它不再隐式通过 "less"进行管道传输

java - ArrayList 对象在 java android 的 ListView 上返回一行

database - Android SQLite,询问ContentValues

Eclipse Debug View 在全屏模式下在断点处弹出

MySQL 排行榜 View