vc so pode fazer replace em fragments adicionados pela api. ta adicionando eles por xml?
--On Jan 2, 2013 10:45 PM, "Guilherme Bernardi" <gui.bernardi09@gmail.com> wrote:Ricardo obrigado pela atenção.Então ai que está, anteriormente eu estava utilizando o método Replace ao invés do Add e mesmo assim ocorria o mesmo problema.Agora mesmo sabendo que já estava dando problema tentei utilizar novamente o Replace e mesmo assim não funcionou.Tem uma coisa que notei que eu acho que pode ser isto o problema, mas não estou encontrando uma forma de resolver e nem estou encontrando o porque ele está fazendo isso.Meu layout principal com os Fragments está implementado desta maneira:<fragmentandroid:layout_width="fill_parent"android:layout_height="fill_parent"class="dataplus.app.dataplussmart.CadastroClienteDados"android:id="@+id/fragDados" /><fragmentandroid:layout_width="fill_parent"android:layout_height="fill_parent"class="dataplus.app.dataplussmart.CadastroClienteEntrega"android:id="@+id/fragEntrega" /><fragmentandroid:layout_width="fill_parent"android:layout_height="fill_parent"class="dataplus.app.dataplussmart.CadastroClienteCobranca"android:id="@+id/fragCobranca" />Quando eu passo pelo setContentView(R.layout.activity_cadastro_cliente); ele chama os 3 onCreateView dos respectivos Fragments.Só que após ele carregar os 3 Fragments. Quando eu termino de criar as Tabs, ele adiciona mais um Fragment repetido.
Então ele deixa 2 CadastroClienteDados. Que é justamente a primeira aba que fica sobrepondo as outras.
Meu TabListener está implementado desta forma:
private class NavTabListener<T extends SherlockFragment> implements ActionBar.TabListener {
private final SherlockFragmentActivity mActivity;
private final String mTag;
private final Class<T> mClass;
private SherlockFragment mFragment;
public NavTabListener(SherlockFragmentActivity activity, String tag, Class<T> clz){
mActivity = activity;
mTag = tag;
mClass = clz;
}
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
SherlockFragment preInitializedFragment = (SherlockFragment) mActivity.getSupportFragmentManager().findFragmentByTag(mTag);
if (preInitializedFragment != null){
ft.detach(preInitializedFragment);
}else if(mFragment!=null){
ft.detach(mFragment);
}
}
public void onTabSelected(Tab tab, FragmentTransaction ft) {
SherlockFragment preInitializedFragment = (SherlockFragment) mActivity.getSupportFragmentManager().findFragmentByTag(mTag);
if(preInitializedFragment == null) {
mFragment = (SherlockFragment) SherlockFragment.instantiate(mActivity, mClass.getName());
ft.replace(android.R.id.content, mFragment, mTag);
} else {
ft.attach(preInitializedFragment);
}
}
public void onTabReselected(Tab tab, FragmentTransaction ft) {}
}
--E cada vez que eu movimento as Tabs, mesmo utilizando o Replace ele adiciona um Fragment ao invés de fazer o replace, mesmo passando apenas na linha do Replace.Obrigado desde já.
On Wednesday, January 2, 2013 7:56:14 PM UTC-2, rlecheta wrote:use o metodo replace nao o add.
On Jan 1, 2013 8:07 PM, "Guilherme Bernardi" <gui.ber...@gmail.com> wrote:Obrigado Ricardo.É acabei resolvendo dessa maneira, obrigado pela ajuda.Estou tendo problema com meus tabs agora, estou seguindo um tutorial que encontrei na internet mas não está funcionando legal:Tenho meu Listener dos Tabs, mas sempre que troco de Tab é como se os 2 últimos sempre estivessem sobrepondo o primeiro:private class NavTabListener<T extends SherlockFragment> implements ActionBar.TabListener {private final SherlockFragmentActivity mActivity;private final String mTag;private final Class<T> mClass;private Fragment mFragment;public NavTabListener(SherlockFragmentActivity activity, String tag, Class<T> clz){mActivity = activity;mTag = tag;mClass = clz;}public void onTabUnselected(Tab tab, FragmentTransaction ft) {if(mFragment!=null)ft.detach(mFragment);}public void onTabSelected(Tab tab, FragmentTransaction ft) {if(mFragment==null){mFragment = SherlockFragment.instantiate(mActivity, mClass.getName());ft.add(android.R.id.content, mFragment);}else {ft.attach(mFragment);}}public void onTabReselected(Tab tab, FragmentTransaction ft) {}}--Antes da maneira que eu havia implementado ao invés de ft.add estava usando ft.replace.E ao invés de ft.detach, estava utilizando ft.remove.Mas já tentei dessa maneira também e não funcionou.
On Tuesday, January 1, 2013 7:46:48 PM UTC-2, rlecheta wrote:Guilhermecoloca o layout_width e layout_height na tag <fragment, igual vc faz com qualquer outra view
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
0 comentários:
Postar um comentário