如何通过ViewPager显示其他内容?

时间:2019-06-30 09:04:26

标签: android android-fragments android-viewpager

我有以下问题:

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

UPD

我需要这张纸

enter image description here

点击图片后,获得以下信息:

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以使用VeiwSwitcher,直到您可以了解它here

  

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,第一个对用户可见,第二个是隐藏的。并且您在View的侧面只能有两个ViewSwitcher,并且可以使用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在它们之间切换。希望这对您有用。您也可以使用ID,但这种情况很难看!