我有一个ViewPager
3滑动fragments
。每个fragment
都有listview
,其中包含一些图像。当单击listview
中的某个图像时,我试图在viewpager上显示一个新的fragment
(类似于活动),并且当按下后退按钮时还能够导航回viewpager。在viewpager上显示一个片段
我对listview
的onClick代码是片段里面是如下(用于测试,我对整个listview
而不是图像使用onClick
)
listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Log.d(TAG,"Clicked");
ItemDetailFragment fragment = ItemDetailFragment.newInstance("ab","cd");
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.containerr,fragment);
transaction.addToBackStack(null);
transaction.commit();
}
});
日志语句打印出精品,但片段不显示。
这里是我的活动它有viewpager
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:theme="@android:style/Theme.WithActionBar">
<com.firstapp.myapplication.CustomViews.SlidingTabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<android.support.v4.view.ViewPager
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/viewPager">
</android.support.v4.view.ViewPager>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/containerr">
</FrameLayout>
</LinearLayout>
请帮助。
另外,在android docs的例子中,导致片段事务的片段中的任何交互都首先传递给处理添加或替换新片段的父活动。我正在处理片段本身。哪一种方法是正确的,两种方法有什么区别?
编辑:我需要在viewPager上添加片段而不是它。这就像在点击viewpager片段内的一个元素时出现一个新的屏幕。
谢谢!
如果您需要“over viewpager”,您可以做的最好的事情是,开始一个新的活动并将ItemDetail片段附加到它中。这是推荐的方式,而不是将附加片段添加到viewpager中。 – 2015-04-04 05:55:12
嗨!谢谢回复。我不是试图将'fragment'附加到'viewpager',而是附加到具有视图寻呼机的父活动。 – aandis 2015-04-04 05:59:01
你的意思是ItemDetail片段是3个滑动片段之一? – 2015-04-04 06:00:12