我有以下问题:
我有MainActivity
,其中放置了ViewPager
。 ViewPager
的页面是Fragment,其中包含imageview
和几个textviews
。用户单击图像时,应显示其他内容。可能我不明白该怎么做。据我所知,我无法在页面FrameLayout
上放置Fragment
并在此处显示包含所需内容的另一个片段。另外,我无法将此片段放置在MainActivity上,因为无法从片段中对其进行更改(并且如果我想在片段上更改ViewPager中包含必要内容的内容,则无法捕获ImageView上的点击)。我找到了一个解决方案:在Page Fragment上有2种布局(第一个用于ViewPager,第二个用于内容,这将在之后显示),并每次更改其可见性,但是我认为这不是最好的主意。所以,也许您有更好的变体?
UPD
我需要这张纸
点击图片后,获得以下信息:
答案 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();
}
}
});
,对于这两个视图使用哪种view
或id
都没有关系。
因此只需将ViewSwitcher
放入您的Fragment
布局中,然后通过xml或以编程方式放置您的图像。并在第一个布局中使用两个Button
,在第二个布局中使用一个Dialog
在它们之间切换。希望这对您有用。您也可以使用ID
,但这种情况很难看!