开发者社区> 问答> 正文

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获取数据是有效的。

展开
收起
爵霸 2016-06-16 10:11:18 2756 0
1 条回答
写回答
取消 提交回答
  • 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
        }
    };
    2019-07-17 19:40:23
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载