У меня есть ViewPager
с 3 раздвижными fragments
. Каждый из fragment
имеет listview
, который содержит некоторые изображения. Я пытаюсь показать новый fragment
над viewpager (как действие), когда щелкнули одно из изображений в listview
, а также сможете вернуться назад к viewpager, когда нажата кнопка «Назад».Показанный фрагмент над viewpager
Мой код listview
OnClick, который находится внутри фрагмента следующим образом (для тестирования, я использую onClick
на всей listview
и не образы)
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, любое взаимодействие во фрагменте, которое приводит к транзакции фрагмента, сначала передается родительской активности, которая обрабатывает добавление или замену нового фрагмента. Я обрабатываю это здесь в самом фрагменте. Какой из них правильный, и в чем разница между этими двумя методами?
EDIT: Мне нужно добавить фрагмент поверх viewPager, а не ему. Это похоже на появление нового экрана при нажатии элемента внутри фрагмента viewpager.
Спасибо!
Если вам нужно «над viewpager», то лучше всего сделать, начать новую деятельность и вставить в нее фрагмент ItemDetail. Это рекомендуемый способ вместо прикрепления фрагмента к viewpager. –
Привет! Спасибо за ответ. Я не пытаюсь прикрепить «фрагмент» к «viewpager», а к родительской активности, которая имеет пейджер представления. – aandis
Вы имеете в виду, что фрагмент ItemDetail является одним из 3 скользящих фрагментов? –