Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Problemas ao inflar Tabs do ActionBar Sherlock.

Cara esta idêntico e não funciona corretamente.


Já começo a me arrepender de tentar utilizar Sherlock. Pois estou há 2 dias só tendo problemas, mesmo utilizando os exemplos e os tutoriais que achei.

On Wednesday, November 28, 2012 10:55:30 AM UTC-2, Felipe Aron wrote:
Não tem nada de errado mesmo... cara realmente passei por isso mas não to lembrando o que era... vou forçar o cerebelo aqui, e lembrando te aviso.

De qualquer forma, estou te enviando o meu exemplo aqui.


Em 28 de novembro de 2012 10:35, Guilherme Bernardi <gui.ber...@gmail.com> escreveu:
Só isso, eu comentei o resto para depois começar a trabalhar com os componentes.

import com.actionbarsherlock.app.SherlockFragment;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class CadastroClienteDados extends SherlockFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.activity_cadastro_cliente_dados, null, false);
}

On Wednesday, November 28, 2012 10:33:14 AM UTC-2, Felipe Aron wrote:
Posta o código de um dos fragments usados como Tab aqui pra eu dar uma olhada...


Em 28 de novembro de 2012 10:26, Guilherme Bernardi <gui.ber...@gmail.com> escreveu:

Cara eu segui os exemplos do seu outro tópico e finalmente consegui fazer funcionar e entender.

Mas está acontecendo um negócio muito estranho.

Eu adicionei os fragments:

fm = getSupportFragmentManager();                
ft = fm.beginTransaction();
fragDados = new CadastroClienteDados();
fragEntrega = new CadastroClienteEntrega();
fragCobranca = new CadastroClienteCobranca();
ft.add(R.id.FrameLayoutAbas, fragDados, "fragmentDados");
ft.add(R.id.FrameLayoutAbas, fragEntrega, "fragmentEntrega");
ft.add(R.id.FrameLayoutAbas, fragCobranca, "fragmentCobranca");
ft.commit();

E depois os tabs:

        Tab tabDados = actionBar.newTab();
        tabDados.setText("Dados");
        tabDados.setTabListener(new NavTabListener(fragDados));
        actionBar.addTab(tabDados);
        
        Tab tabEntrega = actionBar.newTab();
        tabEntrega.setText("Entrega");
        tabEntrega.setTabListener(new NavTabListener(fragEntrega));
        actionBar.addTab(tabEntrega);
        
        Tab tabCobranca = actionBar.newTab();
        tabCobranca.setText("Cobrança");
        tabCobranca.setTabListener(new NavTabListener(fragCobranca));
        actionBar.addTab(tabCobranca);

Mas quando eu inicio o aplicativo.
Ele começa com a primeira aba selecionada, mas exibindo a tela da última aba. Ai eu preciso começar a mudar de abas para ele assumir as abas corretamente.
Eu vi lá no outro tópico que este era o seu problema e você resolveu definindo o container no add. Mas o meu já está dessa forma e está dando este problema.

Obrigado desde já.

On Wednesday, November 28, 2012 10:16:03 AM UTC-2, Felipe Aron wrote:
Estou usando o Sherlock com Tabs também usando Fragments.

No meu caso, tenho a activity principal (SherlockFragmentActivity), e as duas Tabs são (SherlockFragment).

No XML da activity principal eu criei um "Container" pra receber as Tabs:

<FrameLayout
        android:id="@+id/fragment_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >        
    </FrameLayout>


Veja o código da Activity principal:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager fm = getSupportFragmentManager();
if (savedInstanceState == null) {
fragment1 = new Fragment1();
fragment2 = new Fragment2(); 
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.fragment_container, fragment1, "frag1");
ft.add(R.id.fragment_container, fragment2, "frag2");
ft.commit();
}
setActionBar();
}

private void setActionBar() {
actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Tab tab1 = actionBar.newTab()
.setText("Frag1")
.setTabListener(new NavTabListener(fragment1));
actionBar.addTab(tab1);
Tab tab2 = actionBar.newTab()
.setText("Frag2")
.setTabListener(new NavTabListener(fragment2));
actionBar.addTab(tab2);
}
protected class NavTabListener implements ActionBar.TabListener {

private Fragment fragment;
public NavTabListener(Fragment fragment) {
this.fragment = fragment;
}
public void onTabSelected(Tab tab, FragmentTransaction ft) {
ft.replace(R.id.fragment_container, fragment);
}

public void onTabUnselected(Tab tab, FragmentTransaction ft) {
ft.remove(fragment);
}

public void onTabReselected(Tab tab, FragmentTransaction ft) {
}
}

Em 28 de novembro de 2012 08:59, Guilherme Bernardi <gui.ber...@gmail.com> escreveu:

algum bom link com uma maneira para fazer o que prec



--
Analista-Programador

--
 
 



--
Analista-Programador

--
 
 



--
Analista-Programador

--
 
 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário