2015-11-11 21 views
19

Tôi biết có một câu hỏi tương tự được đăng ở đây nhưng không được trả lời như vậy Tôi sẽ mở lại nó. Tôi muốn thực hiện một tablayout bởi vì nó đã được đơn giản nhưng tất cả các hướng dẫn có liên quan với viewpager.TabLayout mà không cần sử dụng ViewPager

này là sản phẩm

Output

Điều duy nhất tôi muốn là một cái gì đó giống như OnClickListener

nếu tôi nhấp vào biểu tượng add nó sẽ nâng cốc chúc mừng "tab 1" nếu tôi nhấp vào biểu tượng lịch nó sẽ bánh mì nướng "tab 2"

v.v ...

đơn giản phải không? Tôi không biết tại sao không có tham chiếu cho câu hỏi đơn giản đó

Tôi đã làm điều đó bằng cách sử dụng 3 ImageView và 2 textview bên trong linearLayout nhưng tôi muốn sử dụng TabLayout vì nó sẽ tự động điều chỉnh cho dù đó là chân dung hay phong cảnh.

Nếu không thể ai đó có thể tạo bố cục tương tự với đầu ra đó chỉ tự động điều chỉnh bằng cách sử dụng 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> 
+0

u có thể tham khảo ở đây: http://androidexample.com/Tab_Layout_%7C_TabBar_-_Android_Example/index. php? view = article_discription & aid = 103 & aaid = 125 –

+1

Tôi vẫn sẽ sử dụng chế độ xem cho hoạt ảnh chuyển tiếp một cách cá nhân, nhưng vô hiệu hóa khả năng người dùng vuốt: http://stackoverflow.com/a/9650884/1219389 – PPartisan

Trả lời

36

Tôi sẽ trả lời câu hỏi của riêng tôi. tôi thấy nó vô tình, tôi tìm kiếm tuyệt vọng vào danh sách đề nghị được cung cấp bởi Android Studio cho đến khi tôi tìm thấy 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) { 

     } 
    }); 
} 
+0

là có thể chuyển bố cục tùy chỉnh cho tab theo cách ở trên mà không cần máy nhắn tin? – Min2

+1

vâng, bạn có thể. .try sử dụng. 'tabLayout.addView (Xem)' –

+0

cảm ơn tôi sẽ cố gắng và sau đó cho bạn biết .. – Min2

Các vấn đề liên quan