Мне интересно, как я могу работать с фрагментом списка, и в то же время, используя статическое линейное расположение с 4 кнопками фильтра вверху списка. Вот проблема:
Прежде всего, я использую панель действий + вкладку навигации от ActionBarSherlock :
QuestList расширяет FragmentMapActivity, реализует ActionBar.TabListener
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getTabs();
}
private void getTabs() {
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab tab1 = getSupportActionBar().newTab();
tab1.setText("Geo");
tab1.setTabListener(this);
getSupportActionBar().addTab(tab1);
ActionBar.Tab tab2 = getSupportActionBar().newTab();
tab2.setText("No Geo");
tab2.setTabListener(this);
getSupportActionBar().addTab(tab2);
}
...
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
if (tab.getText().toString().compareTo("Geo") == 0) {
getSupportFragmentManager().beginTransaction().replace(android.R.id.content, Map.getInstance()).commit();
}
else {
getSupportFragmentManager().beginTransaction().replace(android.R.id.content, List.newInstance(0)).commit();
}
}
У меня возникли некоторые проблемы с MapView, но я наконец исправил их все. Теперь проблема в том, что я хочу что-то вроде этого:
Статическая линейная планировка + ListFragment
Список расширяет ListFragment
...
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initializations();
getQuests();
if (gigHash.isEmpty()) {
TextView eList = new TextView(getActivity());
eList.setText(R.string.no_loc_gig_no_items);
eList.setWidth(Gravity.CENTER);
}
else {
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
mAdapter = new NoLocGigAdapter(getActivity(),R.layout.gig_noloc_row_land,gigList);
}
else {
mAdapter = new NoLocGigAdapter(getActivity(),R.layout.gig_noloc_row,gigList);
}
setListAdapter(mAdapter);
}
}
...
Итак, я использую свой собственный адаптер и получаю все свои товары из службы.
Проблема в том, что при выполнении транзакции я могу использовать только фрагмент, и мне нужно динамически показывать элементы с помощью моего собственного ArrayAdapter, поэтому я не знаю, как включить часть статического кода в это представление ... .
Есть предложения? Я думаю, что обрабатывать фрагменты это немного странно!
PS: Сначала я подумал, что мог бы вызвать фрагмент, и это, вызывая статический xml внутри linearlayout и ListFragment внутри, но я думаю, что не могу этого сделать, верно?