Cách tạo ListFragment (trong thư viện hỗ trợ v4) bố cục từ xml? ListFragment
thiết lập bố cục của nó theo lập trình, vì vậy nếu bạn muốn sửa đổi nó, bạn cần phải gây rối với chế độ xem thêm/xóa.Bố cục ListFragment từ xml
Trả lời
Tôi đã chuyển đổi bố cục đã tạo thành xml, bạn có thể thêm/xóa tiện ích của mình hoặc ví dụ: thêm các giải pháp pulltorefresh
. Bạn không nên thay đổi các id cần thiết. Do các id nội bộ cần thiết cho một số tiện ích cần phải được gọi và cần phải có trong không gian tên hỗ trợ v4 vì các hằng số nằm bên trong với khả năng hiển thị mặc định.
list_loader.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/progress_container_id"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
android:visibility="gone" >
<ProgressBar
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<FrameLayout
android:id="@+id/list_container_id"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/empty_id"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center" />
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawSelectorOnTop="false" >
</ListView>
</FrameLayout>
</FrameLayout>
và lớp ListFragmentLayout
trong android.support.v4.app
(trong dự án của bạn, bạn không cần phải sửa đổi hỗ trợ v4 jar)
package android.support.v4.app;
import your.package.R;
import android.view.View;
public class ListFragmentLayout
{
public static void setupIds(View view)
{
view.findViewById(R.id.empty_id).setId(ListFragment.INTERNAL_EMPTY_ID);
view.findViewById(R.id.progress_container_id).setId(ListFragment.INTERNAL_PROGRESS_CONTAINER_ID);
view.findViewById(R.id.list_container_id).setId(ListFragment.INTERNAL_LIST_CONTAINER_ID);
}
}
trong đoạn của bạn kéo dài ListFragment
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.list_loader, container, false);
ListFragmentLayout.setupIds(view);
return view;
}
bạn có nghĩa là với những thay đổi này, nó sẽ hoạt động như thể nó không phải là chế độ xem tùy chỉnh? – seb
bạn là người đàn ông tuyệt vời! – seb
Không hiệu quả với tôi. Có vẻ như tôi đang sử dụng phiên bản cũ hơn của lib hỗ trợ. Nó thậm chí không chứa lớp ListFragmentLayout. Tôi không đề nghị sử dụng phương pháp này. Trong các phiên bản sau của lib hỗ trợ, nó có thể không hoạt động. – WindRider
Từ androi d sdk (ListFragment) (http://developer.android.com/reference/android/app/ListFragment.html):
công khai Xem onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
Cung cấp thực hiện mặc định để trở lại một cái nhìn danh sách đơn giản. Các lớp con có thể ghi đè để thay thế bằng bố cục của riêng chúng. Nếu làm như vậy, hệ thống phân cấp chế độ xem trả lại phải có một ListView có id là android.R.id.list và có thể tùy chọn có id chế độ xem anh hùng android.R.id.empty sẽ được hiển thị khi danh sách trống.
Nếu bạn đang ghi đè phương pháp này bằng nội dung tùy chỉnh của riêng mình, hãy xem xét bao gồm layout_content tiêu chuẩn bố trí trong tệp bố cục của bạn để bạn tiếp tục giữ lại tất cả các hành vi chuẩn của ListFragment. Đặc biệt, đây là cách duy nhất để có trạng thái tiến trình không xác định được xây dựng trong được hiển thị.
Vì vậy, khi bạn muốn layout.xml của riêng bạn cho một FragmentList overideCreateView và tăng bố cục của riêng bạn.
Ví dụ:
Tạo một bố cục android (yourlistlayout.xml) và đặt xml sau trên vị trí mà bạn muốn hiển thị ListFragment của bạn.
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" >
</ListView>
trong ListFragment lớp học của bạn đặt đoạn mã sau:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.yourlistlayout, null);
return v;
}
điều này sẽ không hoạt động với thư viện hỗ trợ vì id khác nhau – sherpya
- 1. Bộ chọn xml Android cho bố cục
- 2. Nút có bố cục XML tùy chỉnh
- 3. Thêm VideoView vào bố cục XML
- 4. Cách đặt Bộ chia (thành vô) của bố cục tùy chỉnh ListFragment
- 5. Eclipse IDE - Bố cục đồ họa và bố cục XML của Android Cạnh nhau
- 6. cách mở tệp xml bố cục trong Trình chỉnh sửa bố cục Android?
- 7. thêm bố cục trong bố cục khác
- 8. Chế độ xem tùy chỉnh trong bố cục xml
- 9. Đặt mẫu khối Magento trong bố cục xml
- 10. Bố cục XML Hành vi sai trái với Eclipse-ADT
- 11. Sử dụng lớp GLSurfaceView với bố cục xml android
- 12. Hiểu tệp xml bố cục Magento (tham chiếu, khối, ...)
- 13. Lối tắt giữa bố cục đồ họa và XML
- 14. Thay đổi bố cục Xml khi thay đổi hướng
- 15. Xóa bộ tách ListView (trong tệp bố cục xml)
- 16. Populating spinner trực tiếp trong bố cục xml
- 17. Android: Cách tự động bao gồm Bố cục XML?
- 18. cách đặt màu nền trong bố cục xml?
- 19. cách thêm chế độ xem vào bố cục XML android
- 20. Bố cục lưới Vs. Bố cục bảng
- 21. Đặt tệp xml từ thẻ sd làm bố cục trong android
- 22. Làm cách nào để xác định bố cục của một đoạn từ XML?
- 23. Không thể khởi chạy dự án android từ tệp bố cục xml trong Eclipse
- 24. Lỗi android.content.res.Resources $ NotFoundException: Tệp từ ID tài nguyên bố cục loại xml # 0x102000a
- 25. Thuộc tính XML từ bố cục phối hợp đến RelativeLayout qua inflate
- 26. OpenGL và bố cục
- 27. Làm cách nào để tôi có thể thay đổi bố cục xml thành bố cục khác trên mã java?
- 28. cách sử dụng chế độ xem được khai báo trong một tệp xml bố cục trong bố cục khác
- 29. bố cục đất và bố cục xoay màn hình android
- 30. Sử dụng agility.js để bố cục trang và bố cục
Vui lòng chỉnh sửa vì vậy nó rõ ràng những gì vấn đề là (gửi nó như là một câu hỏi) và đưa các giải pháp dưới đây trong phần câu trả lời . –
bạn có ví dụ để tham khảo không? – sherpya
Bài đăng chỉ ở dạng câu hỏi và câu trả lời. Điều này trông giống như một giải pháp, nhưng không rõ câu hỏi ban đầu là câu trả lời. –