2012-01-23 3 views
2

Может ли кто-то проливать больше света на то, как можно иметь несколько видов в одной и той же вкладке? У меня есть 3 вкладки. Я использовал FragmentActivity для загрузки содержимого первой вкладки, которая является ListFragment. При щелчке по любому элементу списка должен отображаться другой список subItems. Для этого я использую внутренний статический класс FragmentActivity, который, в свою очередь, динамически добавляет новый фрагмент, который отображает новый список. Но в новом фрагменте я не вижу свою первую вкладку.Одиночная вкладка нескольких видов

Как я могу переключаться между фрагментами или представлениями, сохраняя мою вкладку нетронутой?


До сих пор не удалось добиться его ... мой код, как указано ниже:

 public void onListItemClick(ListView l, View v, int position, long id) 
    {   
     getListView().setItemChecked(position, true); 

     DetailsFragment details = (DetailsFragment) 
       getFragmentManager().findFragmentById(R.id.titles); 

     if (details == null || details.getShownIndex() != position) 
     {    
      details = DetailsFragment.newInstance(position);     
      FragmentTransaction ft = getFragmentManager().beginTransaction(); 
      ft.replace(R.id.titles, details); 
      ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
      ft.commit(); 
     } 
    } 

Файл макета, как показано ниже:

<?xml version="1.0" encoding="utf-8"? 

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

    <fragment class="com.example.myapp.NewReqScrLoader$TitlesFragment" 
      android:id="@+id/titles" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 

</FrameLayout> 

Собираюсь ли я неправильно где-нибудь?

+0

Я не уверен в ListFragment. Но я надеюсь, что ур-требование встречается с https://github.com/JakeWharton/Android-ViewPagerIndicator – siva

ответ

1

Вы должны заменить первый ListFragment, который был создан другим списком FRagment с использованием подпозиций. Не создавайте новую FragmentActivity.

Используйте transaction.replaceFragment (..), чтобы сделать это.

+0

Пробовал делать это: FragmentTransaction ft = this.getFragmentManager(). BeginTransaction(); \t ft.replace (R.id.titles, details); Здесь в макете добавляется R.id.titles, а детали - динамический фрагмент. Правильно ли это делать? Я получаю - IllegalArgumentException: для id не найдено никакого представления. –

Смежные вопросы