android viewpager根据数组的长度动态加载布局,隐藏控件无效。

布局文件

android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<android.support.v4.view.ViewPager
    android:id="@+id/viewpager"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_marginBottom="@dimen/margin_medium"
    android:layout_weight="10" >
</android.support.v4.view.ViewPager>

<LinearLayout
    android:id="@+id/viewGroup"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:gravity="center"
    android:orientation="horizontal" >
</LinearLayout>

private void initViewPager() {
View view = null;
for (i = 0; i < videoNum//数量是根据从服务器取下的数据,长度是可变的
; i++) {
view = getActivity().getLayoutInflater().inflate(
R.layout.fragment_one_video, null);
viewList.add(view);
mRtspVideoView = (RtspVideoView) view.findViewById(R.id.rv_view);
mRtspVideoView.setPlaySize(Constants.SCREEN_WIDTH,
Constants.SCREEN_HEIGHT);
mIvLogo = (ImageView) view.findViewById(R.id.iv_logo);

在OnPageChangeListener里,操作了一个播放视频。我有一个线程在播放成功的时候,把未播放视频时候的mIvLogo隐藏。
private Handler videoHandler = new Handler() {

    @Override
    public void handleMessage(Message msg) {
        System.out.println("real video");
        mIvLogo.clearAnimation();//隐藏无效。如果是显示也是无效
        mIvLogo.setVisibility(View.GONE);
    }
};
不知道是什么原因,一直是无效的。我在滑动页面的其他操作是有效的。比如按页面的position获取数据是有效的。
mIvLogo = (ImageView) view.findViewById(R.id.iv_logo);这是在循环里,最后记录的是最后一次for循环的组件。
 private Handler videoHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        System.out.println("real video");
        mIvLogo.clearAnimation();//隐藏无效。如果是显示也是无效
        mIvLogo.setVisibility(View.GONE);//你点击的时候这个mIvLogo是最后一次view中的iv_logo
    }
};

mIvLogo = (ImageView) view.findViewById(R.id.iv_logo);在循环里只会赋值最后一个值

你可以将那些需要显示隐藏的组件放集合里 根据Viewpager改变的position取出来对应的组件让其显示 其他的隐藏 不知道可不可以

谢谢各位的帮助 该问题已经解决 解决方法是
mIvLogo = (ImageView) view.findViewById(R.id.iv_logo);
mIvLogo.setTag(i + "page");
在循环中给该控件设置tag,然后在OnPageChangeListener下的方法
@Override
public void onPageSelected(int page) {
mIvLogo = (ImageView) mVPager.findViewWithTag(page + "page");//找到当前控件

然后就可以隐藏该控件。

(ImageView) view.findViewById(R.id.iv_logo);在循环里只会赋值最后一个值