Pertanyaan Apa itu "alat: konteks" di file tata letak Android?


Dimulai dengan versi baru ADT baru-baru ini, saya telah memperhatikan atribut baru ini pada file XML tata letak, misalnya:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    tools:context=".MainActivity" />

Apa itu "alat: konteks" digunakan untuk?

Bagaimana cara mengetahui jalur yang tepat untuk aktivitas yang tertulis di sana? Apakah itu melihat paket aplikasi, di dalam manifes?

Apakah terbatas pada kelas yang memperluas Konteks atau hanya kegiatan? Apakah bisa digunakan untuk item ListView dll?


821
2018-06-18 07:25


asal


Jawaban:


Ini kemungkinan besar adalah aktivitas yang digunakan editor UI untuk merender tata letak Anda (ia akan menemukan tema yang tepat berdasarkan aktivitas). Ini didokumentasikan sini (di sekitar bagian tengah artikel; berlangganan halaman itu untuk mengikuti perkembangan terkini).


374
2018-06-18 07:56



Atribut itu pada dasarnya adalah ketekunan untuk pilihan "Aktivitas Terkait" di atas tata letak. Saat runtime, tata letak selalu dikaitkan dengan suatu aktivitas. Tentu saja dapat dikaitkan dengan lebih dari satu, tapi setidaknya satu. Dalam alat ini, kita perlu tahu tentang pemetaan ini (yang saat runtime terjadi di arah lain; suatu kegiatan dapat memanggil setContentView (tata letak) untuk menampilkan tata letak) untuk mendorong fitur tertentu.

Saat ini, kami menggunakannya hanya untuk satu hal: Memilih tema yang tepat untuk ditampilkan untuk tata letak (karena file manifes dapat mendaftarkan tema untuk digunakan untuk aktivitas, dan setelah kami mengetahui aktivitas yang terkait dengan tata letak, kami dapat memilih tema yang tepat untuk ditampilkan untuk tata letak). Di masa depan, kami akan menggunakan ini untuk mendorong fitur tambahan - seperti rendering bilah tindakan (yang dikaitkan dengan aktivitas), tempat untuk menambahkan penangan onClick, dll.

Alasannya adalah alat: atribut namespace adalah bahwa ini hanya pemetaan designtime untuk digunakan oleh alat. Tata letak itu sendiri dapat digunakan oleh berbagai aktivitas / fragmen, dan lain-lain. Kami hanya ingin memberi Anda cara untuk memilih desain yang mengikat seperti yang kita dapat misalnya menunjukkan tema yang tepat; Anda dapat mengubahnya kapan saja, sama seperti Anda dapat mengubah daftar dan petak fragmen, dll.

(Inilah perubahan lengkap yang memiliki detail lebih lanjut ini)

Dan ya, tautan Nikolay yang tercantum di atas menunjukkan bagaimana pemilih konfigurasi baru terlihat dan berfungsi

Satu hal lagi: Ruang nama "alat" adalah spesial. Alat pengemasan Android tahu untuk mengabaikannya, sehingga tidak ada atribut yang akan dikemas ke dalam APK. Kami menggunakannya untuk metadata tambahan dalam tata letak. Itu juga di mana misalnya atribut untuk menekan peringatan serat disimpan - sebagai alat: abaikan.


352
2018-06-19 23:33



Menurut Situs Proyek Alat Android:

alat: konteks 

Atribut ini biasanya diatur pada elemen root dalam file XML tata letak, dan mencatat aktivitas mana yang dikaitkan dengan tata letak (pada waktu desain, karena jelas tata letak dapat digunakan oleh lebih dari satu tata letak). Ini misalnya akan digunakan oleh editor tata letak untuk menebak tema default, karena tema didefinisikan dalam Manifes dan terkait dengan aktivitas, bukan tata letak. Anda dapat menggunakan awalan titik yang sama seperti pada manifes untuk hanya menentukan kelas aktivitas tanpa nama paket aplikasi lengkap sebagai awalan.

<android.support.v7.widget.GridLayout
    xmlns:android="http://schemas.android.com/apk/res/android"    
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity">  

Digunakan oleh: Editor tata letak di Studio & Eclipse, Lint


84
2018-02-20 16:16



"Alat: konteks" adalah salah satu Atribut Desain yang dapat memfasilitasi pembuatan tata letak dalam XML dalam kerangka pengembangan. Atribut ini digunakan untuk menunjukkan kerangka pengembangan kelas kegiatan apa yang dipilih untuk mengimplementasikan tata letak. Menggunakan "alat: konteks", Android Studio memilih tema yang diperlukan untuk pratinjau secara otomatis.

Jika Anda ingin tahu lebih banyak tentang beberapa atribut lain dan alat yang berguna untuk pengembangan aplikasi Android, lihatlah ulasan ini: http://cases.azoft.com/4-must-know-tools-for-effective-android-development/


5
2017-07-13 11:08



1.Deskripsi

tools: context = "activity name" itu tidak akan dikemas ke dalam apk .Hanya ADT Layout Editor dalam file Layout Anda saat ini mengatur konteks rendering yang sesuai, menunjukkan Layout Anda saat ini dalam rendering konteks adalah nama aktivitas sesuai dengan aktivitas, jika aktivitas di manifest file mengatur Tema, lalu ADT Layout Editor akan membuat Layout Anda saat ini sesuai dengan Theme.Means yang jika Anda mengatur MainActivity mengatur Tema. The Light (yang lain), kemudian Anda lihat di visual layout manager dan kontrol latar belakang apa yang seharusnya menjadi Tema. The Light tampak seperti. Hanya untuk menunjukkan kepada Anda apa yang Anda lihat adalah apa yang Anda dapatkan hasilnya.

Beberapa orang melihat akan mengerti beberapa, beberapa orang melihat juga tidak tahu, saya akan menambahkan beberapa kata penjelasan:

2. Contoh

Ambil yang sederhana tools:text, misalnya, beberapa gambar lebih banyak, nyaman untuk lebih memahami tools:context

<TextView
    android:id="@+id/text1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="sample name1" />

<TextView
    android:id="@+id/text2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:text="sample name2" />

enter image description here

TextView1 mengadopsi android: text, dan gunakan tools:text dalam TextView2, di sisi kanan editor Layout akan menampilkan sample name1, yang sample name2 dua huruf, jika setelah Anda menjalankan kode untuk mengkompilasi, dibuat apk, display terminal hanya sample name1, tidak menunjukkan sample name2 kata-kata. Anda bisa mencoba menjalankan, melihat bagaimana efeknya.

3. deskripsi spesifik

1.The tools: context = "activity name" itu tidak akan dikemas ke dalam apk(pemahaman: yang setara dengan ini dikomentari, tidak dikompilasi efek.)

2.Hanya ADT Layout Editor (yaitu, untuk ikon di atas di sisi kanan simulator) di file Layout saat ini mengatur konteks rendering yang sesuai, Layout XML saat ini dalam rendering konteks adalah nama aktivitas sesuai dengan aktivitas, jika aktivitas di file manifes mengatur Tema, lalu ADT Layout Editor akan membuat Layout Anda saat ini sesuai dengan Theme.Means yang jika Anda mengatur MainActivity mengatur Tema. The Light juga bisa (lainnya). (Mengerti: Anda menambahkan tools: context = "activity name", tata letak XML merender aktivitas tertentu, menetapkan Tema di file manifes, digambarkan di atas kanan gaya Tema simulator juga akan mengikuti perubahan yang sesuai dengan Tema.)

4.Ringkasan

Singkatnya, properti ini terutama ditujukan di atas alat yang tepat, status tampilan waktu debugging simulator, dan kompilasi tidak berfungsi,


4
2017-10-15 03:57



tools:context=".MainActivity" baris ini digunakan dalam file xml yang menunjukkan bahwa file sumber java digunakan untuk mengakses file xml ini. itu berarti menunjukkan pratinjau xml ini untuk file java perticular.


1
2018-05-08 07:33