首页 > 解决方案 > 如何通过 ViewPager 显示其他内容?

问题描述

我有以下问题:

我有MainActivityViewPager放在哪里。Page ofViewPager是 Fragment,其中包含imageview几个textviews. 当用户单击图像时,应显示另一个内容。可能我不明白我该怎么做。据我所知,我不能FrameLayout在我的页面上放置Fragment并在这里显示另一个包含所需内容的片段。此外,我无法将此片段放在 MainActivity 上,因为我无法从片段中更改它(如果我想用需要的内容更改片段上的 ViewPager,我无法捕获对 ImageView 的点击)。我找到了一个解决方案:在 Page Fragment 上有 2 个布局(第一个用于 ViewPager,第二个用于内容,将在之后显示),并且每次都更改它们的可见性,但我认为这不是最好的主意。所以,也许你有更好的变种?

UPD

我需要这个

在此处输入图像描述

点击图片后得到这个:

在此处输入图像描述

标签: androidandroid-fragmentsandroid-viewpager

解决方案


你可以使用你可以在这里VeiwSwitcher了解它

public class ViewSwitcher extends ViewAnimator它在两个视图之间切换,并有一个从中创建这些视图的工厂。您可以使用工厂来创建视图,也可以自己添加它们。一个 ViewSwitcher 只能有两个子视图,一次只显示一个。

例如 :

<ViewSwitcher
    android:id="@+id/viewSwitcher1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:inAnimation="@android:anim/slide_in_left" >

    <LinearLayout
    android:id="@+id/view1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >
    //Content of first layout 

    </LinearLayout>


<LinearLayout
    android:id="@+id/view2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >
   //Content of second layout

    </LinearLayout>
</ViewSwitcher>

所以基本上你有两个ViewGroup,第一个对用户可见,第二个是隐藏的。并且您只能在其中有两个ViewViewSwitcher并且可以使用以下命令在它们之间切换Button

viewSwitcher =   (ViewSwitcher)findViewById(R.id.viewSwitcher1);
    myFirstView= findViewById(R.id.view1);
    mySecondView = findViewById(R.id.view2);
    button1 = (Button) findViewById(R.id.button1);
    button1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            if (viewSwitcher.getCurrentView() != myFirstView){

                viewSwitcher.showPrevious(); 
            } else if (viewSwitcher.getCurrentView() != mySecondView){

                viewSwitcher.showNext();
            }
        }
    });

这两种视图使用哪种viewid使用什么都没有关系。

所以只需放入ViewSwitcher您的Fragment布局并通过 xml 或以编程方式放置您的图像。并在第一个布局中使用两个Button一个,在第二个布局中使用一个在它们之间切换。希望这对你有用。你也可以使用Dialog,但在你的情况下它会变得丑陋!


推荐阅读