viewpager studio español activity android xml onclick android-tablayout

español - tabs android studio



TabLayout sin usar ViewPager (1)

Responderé a mi propia pregunta. Lo encontré accidentalmente, estoy buscando desesperadamente en la lista de sugerencias provista por Android Studio hasta que encontré setOnTabSelectedListener

TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.add_live)); tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.calendar_live)); tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.group_live)); tabLayout.addTab(tabLayout.newTab().setText("Send")); tabLayout.addTab(tabLayout.newTab().setText("Send & Post")); tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { if(tabLayout.getSelectedTabPosition() == 0){ Toast.makeText(MainActivity.this, "Tab " + tabLayout.getSelectedTabPosition(), Toast.LENGTH_LONG).show(); }else if(tabLayout.getSelectedTabPosition() == 1){ Toast.makeText(MainActivity.this, "Tab " + tabLayout.getSelectedTabPosition(), Toast.LENGTH_LONG).show(); }else if(tabLayout.getSelectedTabPosition() == 2){ Toast.makeText(MainActivity.this, "Tab " + tabLayout.getSelectedTabPosition(), Toast.LENGTH_LONG).show(); }else if(tabLayout.getSelectedTabPosition() == 3){ Toast.makeText(MainActivity.this, "Tab " + tabLayout.getSelectedTabPosition(), Toast.LENGTH_LONG).show(); }else if(tabLayout.getSelectedTabPosition() == 4){ Toast.makeText(MainActivity.this, "Tab " + tabLayout.getSelectedTabPosition(), Toast.LENGTH_LONG).show(); } } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { } }); }

Sé que hay una misma pregunta publicada aquí, pero no fue respondida, así que la reabriré. Quiero implementar un tablayout porque era simple pero todos los tutoriales están relacionados con viewpager.

esta es la salida

Output

Lo único que quiero es algo como OnClickListener

si hago clic en el ícono de agregar, se mostrará "pestaña 1", si hago clic en el ícono del calendario, se mostrará en "pestaña 2"

Y así sucesivamente

simple verdad? No sé por qué no hay ninguna referencia para esa simple pregunta.

Ya lo hice usando 3 ImageView y 2 textview dentro de un linearLayout pero quiero usar TabLayout porque se ajustará automáticamente si fue vertical u horizontal.

Si no es posible, ¿puede alguien hacer un diseño similar a ese resultado que se ajuste automáticamente solo con xml?

Main_activity.java

public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.add_live)); tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.calendar_live)); tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.group_live)); tabLayout.addTab(tabLayout.newTab().setText("Send")); tabLayout.addTab(tabLayout.newTab().setText("Send & Post")); } }

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:app="http://schemas.android.com/tools"> <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabMode="fixed" app:tabGravity="fill" /> </RelativeLayout>