Estou escrevendo um aplicativo para tablets 4.0 e 4.1, para o qual não quero usar as bibliotecas de suporte (se não for necessário), mas apenas a api 4.x.
Portanto, minha plataforma de destino é muito bem definida como:> = 4.0 e <= 4.1
O aplicativo possui um layout com vários painéis (dois fragmentos, um pequeno à esquerda, um fragmento de conteúdo à direita) e uma barra de ação com guias.
Semelhante a este:
Clicar em uma guia na barra de ação altera o fragmento "externo", e o fragmento interno é um fragmento com dois fragmentos aninhados (1. pequeno fragmento de lista à esquerda, 2. fragmento de conteúdo amplo).
Agora estou me perguntando qual é a prática recomendada para substituir fragmentos e, especialmente, fragmentos aninhados. O ViewPager faz parte da biblioteca de suporte, não há alternativa 4.x nativa para esta classe. Parece estar "obsoleto" no meu sentido. - http://developer.android.com/reference/android/support/v4/view/ViewPager.html
Então eu li as notas de lançamento do Android 4.2, a respeito ChildFragmentManager
, que seria um bom ajuste, mas estou visando 4.0 e 4.1, então isso também não pode ser usado.
ChildFragmentManager
só está disponível em 4.2
- http://developer.android.com/about/versions/android-4.2.html#NestedFragments
- http://developer.android.com/reference/android/app/Fragment.html#getChildFragmentManager ()
Infelizmente, quase não existem bons exemplos por aí que mostram as melhores práticas para uso de fragmentos sem a biblioteca de suporte, mesmo em todos os guias do desenvolvedor Android; e especialmente nada sobre fragmentos aninhados.
Então, eu me pergunto: simplesmente não é possível escrever aplicativos 4.1 com fragmentos aninhados sem usar a biblioteca de suporte e tudo o que vem com ela? (precisa usar FragmentActivity em vez de Fragment, etc.?) Ou qual seria a prática recomendada?
O problema que estou tendo atualmente no desenvolvimento é exatamente esta declaração:
A Android Support Library também oferece suporte a fragmentos aninhados, para que você possa implementar designs de fragmentos aninhados no Android 1.6 e superior.
Nota: Você não pode aumentar um layout em um fragmento quando esse layout inclui um
<fragment>
. Fragmentos aninhados são suportados apenas quando adicionados a um fragmento dinamicamente.
Porque eu defini os fragmentos aninhados em XML, o que aparentemente causa um erro como:
Caused by: java.lang.IllegalArgumentException: Binary XML file line #15: Duplicate id 0x7f090009, tag frgCustomerList, or parent id 0x7f090008 with another fragment for de.xyz.is.android.fragment.CustomerListFragment_
No momento, concluo por mim mesmo: mesmo no 4.1, quando eu nem quero ter como alvo a plataforma 2.x, os fragmentos aninhados como mostrado na imagem não são possíveis sem a biblioteca de suporte.
(Isso pode realmente ser mais uma entrada de wiki do que uma pergunta, mas talvez outra pessoa tenha gerenciado isso antes).
Atualizar:
Uma resposta útil está em: Fragment Inside Fragment
ActionBar
(desenvolvido internamente pela Samsung). Dê uma olhada mais de perto no ActionBarSherlock, ele tem as guias na ActionBar se houver espaço.