2012-03-16 27 views
6

Tôi đã đọc xung quanh rằng mảnh vỡ làm tổ nên tránh, nhưng tôi không thể nhìn thấy làm thế nào để làm như sau (ví dụ here.):Có cách nào khác để lồng ghép các mảnh vỡ không?

Tôi đang làm việc trên một ứng dụng tab (android:minSdkVersion="12") với giao diện người dùng sau :

enter image description here

thanh tìm kiếm phải lúc nào cũng ở đây và người dùng có thể điều hướng thông qua một số tùy chọn trình đơn ('nhà', 'bộ sưu tập' ...). Ý tưởng của tôi là sử dụng BaseActivity với bố cục chứa thanh tìm kiếm và FrameLayout, trong đó tôi sẽ tải Fragment tương ứng với lựa chọn điều hướng của người dùng. Vấn đề của tôi là trong phần 'Home' Fragment, tôi muốn thực hiện theo cùng một cách, tức là với bố cục chứa thanh tab và FrameLayout, trong đó tôi sẽ tải Fragment tương ứng, và điều này Chúng tôi biết rằng thay vì BaseActivity tôi có thể sử dụng một số hoạt động và bao gồm thanh tìm kiếm trong mọi bố cục, nhưng nó sẽ làm cho nó xuất hiện và biến mất mỗi khi người dùng thay đổi hoạt động ...

EDIT

Tôi cũng cần một chân trang cố định, vì vậy tôi không thể sử dụng thanh hành động theo đề xuất của CommonsWare trong câu trả lời của anh ấy.

Bất kỳ ai cũng có thể trợ giúp?

Trả lời

3

Có các mảnh ghép lồng nhau !!!!!!! trong phiên bản thư viện hỗ trợ mới (thư viện hỗ trợ v4, phiên bản 11)

0

Bạn không thể làm các thanh tab trong bố cục BaseActivity? Sau đó, trong bố cục BaseActivity sẽ là thanh tìm kiếm, thanh tab và khung phân đoạn. Nếu bạn không muốn thanh điều hướng trong một đoạn nào đó, bạn có thể đặt chế độ hiển thị View.GONE thành thanh điều hướng.

2

Bạn có thể sử dụng ViewPager và FragmentPagerAdapter cho việc này. ViewPager cho phép người dùng vuốt giữa các chế độ xem hoặc (trong trường hợp của bạn) Fragments. Để hiển thị các điều khiển dạng tab, hãy sử dụng ViewPagerIndicator.

Sử dụng cách bố trí bạn mô tả, thay vì tải một Fragment vào FrameLayout, thổi phồng nó với một bố cục như thế này:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <com.viewpagerindicator.TabPageIndicator 
     android:id="@+id/viewpagerIndicator" 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" /> 
    <android.support.v4.view.ViewPager 
     android:id="@+id/viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" /> 

</LinearLayout> 

Tiếp theo, gán một FragmentPagerAdapter để ViewPager của bạn, sau đó sẽ được tải Những mảnh vỡ của bạn.

Ngoài ra, hãy xem my answer here. Nó đưa ra một ví dụ chi tiết hơn. Tuy nhiên, lưu ý rằng nó mở rộng PagerAdapter, thay vì FragmentPagerAdapter bạn nên sử dụng.

0

Ý tưởng của tôi là sử dụng BaseActivity với bố cục chứa thanh tìm kiếm và FrameLayout, trong đó tôi sẽ tải Fragment tương ứng với lựa chọn điều hướng của người dùng.

Nếu bạn sử dụng các hoạt động riêng biệt, thay vì cố ép mọi thứ vào một hoạt động, bạn sẽ không kết hợp với các đoạn lồng nhau.

+0

Nhưng với một số hoạt động tôi không thể có hộp tìm kiếm như một tiêu đề cố định, phải không? Tôi sẽ cần phải bao gồm nó để bố trí của mọi hoạt động và nó sẽ được nạp lại mỗi khi tôi thay đổi các hoạt động (tức là từ điểm giao diện người dùng xem nó sẽ biến mất và xuất hiện trở lại). Điều tương tự nếu tôi tạo ra một số hoạt động cho các tab. – jul

+1

@jul: "Nhưng với một số hoạt động, tôi không thể có hộp tìm kiếm dưới dạng tiêu đề cố định, phải không?" - đặt nó ở đầu mỗi hoạt động. Tốt hơn, hãy đặt nó vào thanh hành động. "Tôi sẽ cần phải bao gồm nó để bố trí của mọi hoạt động và nó sẽ được nạp lại mỗi khi tôi thay đổi các hoạt động (tức là từ quan điểm giao diện người dùng của nó sẽ biến mất và xuất hiện trở lại)" - có. – CommonsWare

+0

Ok Tôi sẽ kiểm tra xem tôi có thể tùy chỉnh thanh tác vụ như tôi muốn thanh tìm kiếm của mình không. Tôi cũng cần một chân trang cố định, vì vậy nếu tôi có thể có hai thanh hành động và chúng có thể được tùy chỉnh, tôi sẽ sử dụng nó. Cảm ơn. – jul

0

Tin tốt !!!!! thư viện hỗ trợ Android phiên bản 11 đã hỗ trợ phân đoạn lồng nhau. Support Package, revision 11 (November 2012)

thay đổi cho thư viện hỗ trợ v4:
        User Interface
                gia tăng hỗ trợ cho các lớp Fragment lồng nhau.

Làm thế nào để thực hiện đoạn lồng nhau, từ android developer

Bây giờ bạn có thể nhúng mảnh vỡ bên trong mảnh vỡ. Điều này rất hữu ích cho một loạt các tình huống mà bạn muốn đặt các thành phần UI động và có thể tái sử dụng vào một thành phần giao diện người dùng tự động và có thể sử dụng lại được. Ví dụ: nếu bạn sử dụng ViewPager để tạo phân đoạn vuốt sang trái và sang phải và sử dụng phần lớn không gian màn hình, bây giờ bạn có thể chèn các đoạn vào từng trang phân đoạn.

Có một số chủ chốt ở đây: getChildFragmentManager()getParentFragment()

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