Android: Android.R.id.content được sử dụng để làm gì?


140

Bất cứ ai cũng có thể giải thích ý nghĩa của "android.R.id.content"?

Làm thế nào nó được sử dụng?

http://developer.android.com không có bất kỳ lời giải thích nào.

công khai nội dung cuối cùng tĩnh
Vì: API cấp 1

Giá trị không đổi: 16908290 (0x01020002)


94
android.R.id.contentcung cấp cho bạn thành phần gốc của chế độ xem mà không cần phải biết tên / loại / ID thực tế của nó. Kiểm tra stackoverflow.com/questions/4486034/ từ
Philipp Reichart

2
Điều này rất hữu ích trong các giao dịch phân đoạn như: mFragmentTransaction.add (android.R.id.content, myFragment);
IgorGanapolsky

@IgorGanapolsky Một ứng dụng ví dụ thực hiện loại giao dịch này trong một điều kiện: if(fragmentManager.findFragmentById(android.R.id.content)==null) {fragmentManager.beginTransaction(android.R.id.content, list).add().commit();}Bạn có thể cho biết Viewphần tử gốc này là gì không?
Solace

@Zarah Bạn có chắc cú pháp của bạn là chính xác ở đây và có thể biên dịch được không?
IgorGanapolsky

Các lớp của bố trí liên quan đến là android.R.id.content gì?
Sushant

Câu trả lời:


98

Như Philipp Reichart đã nhận xét :

android.R.id.contentcung cấp cho bạn thành phần gốc của chế độ xem mà không cần phải biết tên / loại / ID thực tế của nó. Kiểm tra http://stackoverflow.com/questions/4486034/android-how-to-get-root-view-from-civerse-activity


5
Một ví dụ thực tế về việc sử dụng nó có thể được tìm thấy trong đoạn 2: developer.android.com/guide/topics/ui/actionbar.html#Tabs
OrhanC1

4
"cung cấp cho bạn phần tử gốc của chế độ xem mà không cần phải biết tên / loại / ID thực tế của nó" Làm thế nào để biết chế độ xem đó là phần tử gốc mà chúng tôi muốn.
Solace

21

Các android.R.id.contentgiá trị ID chỉ ra ViewGroupcủa toàn bộ khu vực nội dung của một Activity.

Nó có thể được sử dụng với Fragment:

public class MyActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction()
                .add(android.R.id.content, MyFragment.newInstance())
                .commit();
        }
    }

    ...

}

Mã ở trên sẽ chèn Viewđược tạo bởi Fragmentvào ViewGroupđược xác định bởi android.R.id.content.


9

Các nhà thiết kế của Google phát triển Android UX với các nguyên tắc thiết kế cụ thể hoặc được đề xuất. Bố cục android.R.id.content định nghĩa một linearlayout với một vài thuộc tính mà Android tin là một tiêu chuẩn tốt.

Do đó, tải chế độ xem gốc của Trình quản lý mảnh bằng Android.R.id.content đảm bảo các nguyên tắc này được triển khai.

LƯU Ý: Bố cục này đã đặt thuộc tính: android: addStatesFromChildren = "true" để cho phép các đoạn con ghi đè lên các thuộc tính trong rootview này.

Kể từ phiên bản 19, android.R.id.content được định nghĩa trong một tệp: auto_complete_list.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/content"
    android:orientation="vertical"
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"
    android:background="@android:drawable/edit_text"
    android:divider="@android:drawable/divider_horizontal_textfield"
    android:addStatesFromChildren="true">
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.