Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何用定时器显示元素?_Java_Android_Android Layout_Android Activity_Android Fragments - Fatal编程技术网

Java 如何用定时器显示元素?

Java 如何用定时器显示元素?,java,android,android-layout,android-activity,android-fragments,Java,Android,Android Layout,Android Activity,Android Fragments,我有个问题。我有一个带有ViewPager的活动,其中有一些片段 在我的第一个片段中,我有一些元素。比如说一个ImageView,TextView。当你完全打开ViewPager页面时,如何让它们通过计时器显示 我在MainActivity.java文档中使用了下面的代码,以使ImageView通过计时器可见,但它的工作方式与我预期的不同。当我想通过滚动和触摸屏幕进入下一页时,ImageView dissapear。为什么会这样 final ImageView mImageView = (Ima

我有个问题。我有一个带有ViewPager的活动,其中有一些片段

在我的第一个片段中,我有一些元素。比如说一个ImageView,TextView。当你完全打开ViewPager页面时,如何让它们通过计时器显示

我在MainActivity.java文档中使用了下面的代码,以使ImageView通过计时器可见,但它的工作方式与我预期的不同。当我想通过滚动和触摸屏幕进入下一页时,ImageView dissapear。为什么会这样

final ImageView mImageView = (ImageView) findViewById(R.id.earth);
mImageView.setVisibility(View.INVISIBLE);
mImageView.postDelayed(new Runnable() {
public void run() {
       mImageView.setVisibility(View.VISIBLE);
}}, 5000);
感谢您的帮助。谢谢

我的新编辑:

// Initialize the ViewPager and set an adapter
        ViewPager pager = (ViewPager) findViewById(R.id.pager);
        pager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager()));

        // Bind the tabs to the ViewPager
        PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
        tabs.setViewPager(pager);
//open concrete page of ViewPager. setCurrentItem(index of page)
pager.setCurrentItem(1);

tabs.setOnPageChangeListener(new OnPageChangeListener() {
            //This method will be invoked when the current page is scrolled, either as part of a program initiated smooth scroll or a user initiated touch scroll.
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            //This method will be invoked when a new page becomes selected.
            @Override
            public void onPageSelected(int position) {
                final ImageView mImageView = (ImageView) findViewById(R.id.earth);
                mImageView.setVisibility(View.INVISIBLE);
                if (position == 0) {
                    mImageView.postDelayed(new Runnable() {
                        public void run() {
                            mImageView.setVisibility(View.VISIBLE);
                        }
                    }, 5000);
                }
            }

            //Called when the scroll state changes.
            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });

我的问题是与选项卡和ViewPager冲突。当我使用tabs.setOnPageChangeListener(新建OnPageChangeListener()时,我与pager.setCurrentItem(1)有冲突;在活动第一次打开时显示具体页面。在我的例子中,它在活动第一次打开时显示二维页面,但选项卡显示打开的第一页。为什么?!如何解决此问题?!

我不会使用计时器。它可能会触发太早,也可能触发太迟,使您的UI看起来不好。使用寻呼机的事件来知道何时更新您的UI。例如例如,您可能可以在PageChangedListener上使用

    pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
       @Override
       public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

       }

       @Override
       public void onPageSelected(int position) {
            // Now displaying page at position
       }

       @Override
       public void onPageScrollStateChanged(int state) {

       }
   };

现在还不清楚你在问什么或者你尝试过什么。如果你现在发布了一些代码,人们将能够帮助你解决具体的问题。请阅读“询问”部分下的“关于简单回答问题的建议”。@Rudi Hello!我更新了一点我的帖子!你能再检查一下吗?你有什么想法吗ello Greg Ennis!正如我所说,我有ViewPager。我想添加一些效果。比如说,当用户在几秒钟后滚动并完全打开页面时,ImageView将可见。我在一些应用程序中看到了这些东西,它看起来很和谐。那么setOnPageChangeListener能给我什么呢?!因为我了解页面的所有状态。没错。使用页面nge listener,以便您知道用户何时更改到新页面,然后启动动画。你好,Greg Ennis!我更新了我的帖子,您能再检查一下吗?!我在使用TABS.setOnPageChangeListener(new OnPageChangeListener()时与pager.setCurrentItem(1)有冲突;当活动第一次打开时,它显示具体的页面。在我的例子中,当活动第一次打开时,它显示二维页面,但选项卡显示打开的第一页。你知道这样做的原因吗?我一定是走错了方向,因为另一个答案是公认的答案。事实上,我接受了两个答案,但我不明白为什么只有一个答案被标记了。很伤心!无论如何,谢谢!