【问题标题】:Sliding pages in androidandroid中的滑动页面
【发布时间】:2012-08-14 14:52:45
【问题描述】:

我正在开发一个应用程序,假设我有 5 个不同的布局以及一个主布局,其中包含指向每个布局的链接。在主布局中,当用户单击第一个按钮时,假设通过滑动进入相关布局。其他视图也一样。

当用户转到其中一个布局时,下一个布局也有几个链接到其他布局,就像一个链。而这条链是通过滑动从布局移动到另一个布局的。

我曾尝试使用视图翻转器来执行此操作,但由于我有很多不同的布局,并且其中包含背景图像和一些内容,因此出现内存不足错误。

所以我正在尝试以这种方式找到解决方案。知道如何做到这一点吗?

【问题讨论】:

  • 内存不足问题如何?它解决了这个问题吗?
  • 一次加载3页。我正在使用我的应用程序,其中包含大约 200 张图片,并且工作正常。
  • 我也在我的一个应用程序中使用了它,但它也用于图像。还有一件事,你知道我们可以设置滑动动画吗?不能用手指,必须用点击操作。
  • 可以,也有教程。

标签: android android-layout android-viewpager viewflipper


【解决方案1】:

我建议你使用 Jake Whartons ViewPageIndicator:

为您的每个布局创建一个Fragment,并使用片段内的onCreateView() 方法将布局设置为您的片段:

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) {

        return inflater.inflate(R.layout.layout, container, false);
    }

现在创建一个FragmentPagerAdapter,应该有一个名为getItem() 的方法。 Switch Position 并将其设置为您的 Fragment:

 public Fragment getItem(int position) {
 switch(position)
       {
               case 0:
                    TestFragment fragment = new TestFragment();  
                    return fragment;

                case 1:
                    TestFragment2 fragment2 = new TestFragment2();  
                    return fragment2;

         }

                    DefaultFragment fragment3 = new DefaultFragment();  
                    return fragment3;

         }

现在您应该可以轻松滑动到您的布局(片段)

【讨论】:

  • 我会尝试这种方式,让你知道它是否适合我的情况。
  • 我尝试了使用 Fragment 的方式,但没有使用 ViewPager,它可以工作。
【解决方案2】:

开始一个新的android.app.Activity 托管每个布局,并使用overridePendingTransition(R.anim.animation_leave, R.anim.animation_enter); 覆盖活动之间的过渡,其中*.anim.animation_leave 和_enter 已经在this SO answer 中为您明确指定。

您可以在调用后立即编写 overridePendingTransition 代码以启动“链式”活动,并且(如果需要)可以通过在 Activity 上调用 finish() 或选择“向上”后提供相反的转换来应用反向效果按下导航按钮或按下“返回按钮”。

让一个活动管理一个布局(根据我的经验)也有利于代码的可维护性。

【讨论】:

  • 我要设计的这个页面将是标签之一。所以如果开始一个新的活动,它会使事情变得更加复杂。谢谢你的建议。
  • 我明白了...抱歉,没有意识到这是在选项卡的上下文中。回复:考虑到这一点的ViewPager 建议 - 在选项卡下有一个视图寻呼机听起来很糟糕。它本质上是两种形式的横向导航,可能会让用户感到困惑,因为他们希望在选项卡之间滑动,但会遇到第一个选项卡中的“视图 2”?开发者指南的这一部分很棒,请阅读:developer.android.com/training/design-navigation/…
  • 假设我基本上有 5 个选项卡,第一个选项卡包含一些信息的列表,当用户单击其中一个列表项时,假设会滑动到下一个布局,但每件事都会发生以这种方式仍将停留在第一个选项卡中。其余选项卡包含其他内容。所以我实际上正在尝试寻找一种分页方式。正如我所说,我尝试了视图翻转器,但由于它将所有孩子都保存在内存中,所以我出现了内存不足的问题。当用户单击列表中的项目并进行设置时,我仍然可以更改内容视图。
  • 但我想用“滑入”和“滑出”动画来制作它,因为我们可以在视图鳍状肢中做到这一点。
  • 是的,我明白了。如果没有给出一个可能不是很好的“使用另一种设计范式”的建议,我就没有答案!我还没有看到这种范式在其他地方使用,并且由于我不是导航/UI 专家,这会向我表明我正在做一些用户可能无法获得/框架无法容纳的事情。画一些你需要做的屏幕地图,看看是否有更标准的东西出现在洗涤中......developer.android.com/training/design-navigation/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多