Tôi có một FrameLayout
bên trong CoordinatorLayout
để thổi phồng các mảnh của tôi có chứa RecyclerView
. Vấn đề là, tôi muốn hiển thị thanh tiến trình khi tải RecyclerView
, nhưng thanh tiến trình luôn ở trên cùng của màn hình dưới Toolbar
. Tôi đã thử các bố cục khác nhau, thiết lập gravity
hoặc centerInParent
nhưng không có cách nào hoạt động. Vậy có cách nào để đạt được điều này không?Có thể căn giữa bố cục/chế độ xem bên trong CoordinatorLayout không?
Trả lời
Sau khi một số nghiên cứu tôi thất bại trong việc tìm ra một cách để làm cho công việc này, vì vậy cuối cùng tôi đã làm điều này:
- Đặt thanh tiến trình bên trong CoordinatorLayout với
android:layout_gravity="center"
. Trong hoạt động, làm cho 2 phương pháp để hiển thị thanh/hide tiến bộ:
public void showProgress() { progressBar.setVisibility(View.VISIBLE); } public void hideProgress() { progressBar.setVisibility(View.INVISIBLE); }
Trong đoạn, có được một tài liệu tham khảo của các hoạt động nêu trên thông qua
getActivity()
, đúc nó vào hoạt động thực tế và gọi cần thiết phương pháp.context = getActivity(); ((MainActivity)context).showProgress();
EDIT: điều này dường như được cố định trong thư viện hỗ trợ 23.1.1
Chính xác "cố định" là gì? Và làm thế nào? –
@androiddeveloper thời gian qua tôi đã kiểm tra với thư viện hỗ trợ 23.1.1, tôi đã có thể đạt được kết quả mong muốn như được mô tả trong câu hỏi mà không sử dụng "hack" trong câu trả lời này. –
Ồ, tôi hiểu rồi. Nó chỉ là trong trường hợp của tôi, nó ở trung tâm chỉ khi khu vực phía trên được mở rộng, và tôi muốn nó được tập trung khi nó sụp đổ, bởi vì tôi làm cho nó sụp đổ theo mặc định ... –
Sử dụng FrameLayout bên trong RelativeLayout và đặt thuộc tính CenterInParent vào thanh tiến trình.
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/myFrameLyt"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
cảm ơn, nhưng thanh tiến trình phải nằm trong xml của đoạn. –
Tôi đã tạo ra tôi Xem Giống như:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:wheel="http://schemas.android.com/tools"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="fill_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/order_list_app_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/order_list_collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|enterAlways">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/padding_normal">
<TextView
android:id="@+id/order_list_outstanding_amount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@android:id/icon"
android:layout_margin="@dimen/margin_normal"
android:layout_marginLeft="@dimen/margin_high"
android:layout_toRightOf="@android:id/icon"
android:text="@string/format_outstanding_amout"
android:textColor="@android:color/white"
android:textSize="@dimen/font_large" />
</RelativeLayout>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/order_list_recycler_view"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_margin="16dp"
android:src="@android:drawable/ic_input_add"
app:layout_anchor="@id/order_list_recycler_view"
app:layout_anchorGravity="bottom|right|end" />
<include
android:id="@+id/order_list_empty_view"
layout="@layout/empty_view"></include>
<com.pnikosis.materialishprogress.ProgressWheel
android:id="@+id/progress_wheel"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_gravity="center"
wheel:matProg_barColor="@color/colorAccent" />
</android.support.design.widget.CoordinatorLayout>
Nó có thể hoạt động nếu bạn không sử dụng phân đoạn. Tuy nhiên như được mô tả trong bài đầu tiên của tôi, tôi sử dụng 'FrameLayout' bên trong' CoordinatorLayout' để thổi phồng các mảnh của tôi, chứa một 'RecyclerView',' TextView' và 'ProgressBar'. Trong trường hợp đó, không có thuộc tính trọng lực nào hoạt động. –
android:layout_gravity="center"
công trình tốt. Và loại bỏ FrameLayout của bạn, nó dư thừa.
'FrameLayout' là chế độ xem để làm tăng phân đoạn. Nó không phải là ViewGroup ngoài cùng. –
Hoạt động tốt, cảm ơn – Ajji
Đặt CoordinatorLayout bên trong RelativeLayout và thêm thanh tiến trình vào trong RelativeLayout này. Đặt CenterInParent cho thanh tiến trình thành true. Thực hiện thanh tiến trình Đã qua/Hiển thị theo nhu cầu.
Trong thực tế, bạn không cần phải đặt CoordinatorLayout bên trong RelativeLayout chỉ để thực hiện trung tâm thanh tiến trình. 'Layout_gravity' thực hiện tốt. Những gì tôi có nghĩa là thanh tiến trình đang ở trong tập tin xml KHÁC, trong trường hợp đó nó đã không thể đặt nó ở trung tâm. –
- 1. Làm cách nào để căn giữa Chế độ xem bên trong Bố cục Android?
- 2. Làm cách nào để căn giữa hai chế độ xem trong bố cục tương đối?
- 3. Cách căn giữa chế độ xem bằng RelativeLayout?
- 4. ViewPager bên trong CoordinatorLayout bao gồm các chế độ xem khác trên API> = 21
- 5. Phân đoạn không cuộn trong một ViewPager bên trong CoordinatorLayout
- 6. Không thể căn chỉnh các chế độ xem
- 7. Văn bản Căn chỉnh cột trong Chế độ xem danh sách: cột đầu tiên không thể được căn giữa
- 8. Android RelativeLayout căn giữa của một chế độ xem ở góc trên cùng bên phải của chế độ xem khác
- 9. Android: Vẽ lại chế độ xem cụ thể bên trong bố cục
- 10. iOS cách căn giữa hai chế độ xem qua PureLayout
- 11. Chế độ xem OpenGL bên trong bố cục
- 12. Cách xem Adview bên dưới Viewpager trong CoordinatorLayout
- 13. Khoảng trắng bên dưới CoordinatorLayout trong DrawerLayout
- 14. Không thể làm cho chế độ xem con rộng hơn bố mẹ trong Bố cục Android
- 15. Xem không thể được neo vào phụ huynh CoordinatorLayout
- 16. Bạn có thể gọi các chế độ xem bên trong Chế độ xem trong sql
- 17. Có thể đặt một chế độ xem trên một chế độ xem khác trong Android không?
- 18. Làm cách nào để căn giữa nội dung bên trong bố cục tuyến tính?
- 19. Có cách nào để đặt chế độ xem hơi bên ngoài bố cục gốc không?
- 20. Tôi có thể căn giữa vật phẩm UIToolbar không?
- 21. Có thể tự động xoay chế độ xem phương thức chứ không phải chế độ xem của bố cục không?
- 22. Làm cách nào để căn giữa Chế độ xem tùy chỉnh trên Android?
- 23. Chế độ xem dao cạo không có bố cục
- 24. Phần tử căn giữa bên trong một phần tử (jQuery)
- 25. CoordinatorLayout không làm việc
- 26. Cách căn chỉnh widget.TextInputLayout với chế độ xem MaterialSpinner?
- 27. Nút có thể nhấp (hoặc bất kỳ Chế độ xem nào) bên trong EditText trong android
- 28. Tôi có thể sử dụng WebView bên trong Chế độ xem (gốc tự nhiên) không?
- 29. MySQL - Không thể tạo chế độ xem có biến SET bên trong
- 30. Căn giữa văn bản "span" bên trong một div
Cùng một vấn đề ở đây ... –