2016-10-05 23 views
7

Tôi triển khai chế độ xem BottomNavigation cho android và tôi có một số đoạn để hiển thị dưới dạng các trang BottomNavigation. Theo số Google Material Design Guide Lines tôi muốn hiển thị các đoạn với hoạt ảnh mờ dần.Android ViewPager Hoạt hình CrossFade

Bằng cách chạm vào các mục BottomNavigation, ViewpPager của tôi thay đổi các đoạn có hoạt ảnh chiếu mặc định.

Tôi đọc một số giải pháp trong thisthis. nhưng chúng không thực sự mờ ảo và tôi không thể thiết lập thời gian mờ dần.

Vậy có cách nào để đặt hoạt ảnh khi thay đổi tab của ViewPager không?

Trả lời

2

Cuối cùng, tôi đã tìm thấy câu trả lời của mình.

Tôi đã thay đổi ViewPager bằng bố cục để giữ các đoạn của tôi (bố cục khung). Sau đó, tôi thêm các mảnh vỡ vào một fragmentTransaction.

Bằng cách chạm vào một mục trên BottomNavigation, phân mảnh đoạn hiện tại và các đoạn mới sẽ được hiển thị bằng hoạt ảnh mờ dần được xác định trong fragmentTransaction.

và đây là mã của tôi:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main_page); 

    addFragmentsToManager(); 
} 

private void addFragmentsToManager() { 
    FragmentManager fragmentManager = getSupportFragmentManager(); 
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
    fragmentTransaction.setCustomAnimations(R.anim.fade_in, R.anim.fade_out); 

    fragmentTransaction.add(R.id.flContent, tripFragment, tripFragment.getClass().getSimpleName()); 
    fragmentTransaction.add(R.id.flContent, notificationFragment, notificationFragment.getClass().getSimpleName()); 
    fragmentTransaction.add(R.id.flContent, searchFragment, searchFragment.getClass().getSimpleName()); 
    fragmentTransaction.add(R.id.flContent, profileFragment, profileFragment.getClass().getSimpleName()); 

    fragmentTransaction.hide(tripFragment); 
    fragmentTransaction.hide(notificationFragment); 
    fragmentTransaction.hide(searchFragment); 
    fragmentTransaction.hide(profileFragment); 
    fragmentTransaction.commit(); 
} 

private void changeTab(int position) { 
    Fragment fragment; 
    switch (position) { 
     fragment = .....// get framgnet from position 
    } 

    FragmentManager fragmentManager = getSupportFragmentManager(); 
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
    fragmentTransaction.setCustomAnimations(R.anim.fade_in, R.anim.fade_out); 

    fragmentTransaction.hide(prvFragment); 
    fragmentTransaction.show(fragment).commit(); 
    prvFragment = fragment; 
} 
1

Có một vấn đề với việc thêm và ẩn mảnh.

Khi ứng dụng ở chế độ chờ và điện thoại chuyển sang chế độ nghỉ nếu bạn quay lại ứng dụng tất cả các phân đoạn được hiển thị trong hoạt động và bạn thấy tất cả bố cục trong một.

+0

Có, có và tôi không thể tìm cách giải quyết – FarshidABZ

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