ฉันเพิ่งเริ่มเขียนโปรแกรม ฉันใช้เค้าโครงกราฟิกตอนนั้นฉันกำลังอ่านไฟล์ xml ฉันเห็น FrameLayout จากนั้นฉันก็ค้นหา แต่ไม่พบสิ่งที่เป็นประโยชน์ FrameLayout คืออะไรและทำอะไร?
ฉันเพิ่งเริ่มเขียนโปรแกรม ฉันใช้เค้าโครงกราฟิกตอนนั้นฉันกำลังอ่านไฟล์ xml ฉันเห็น FrameLayout จากนั้นฉันก็ค้นหา แต่ไม่พบสิ่งที่เป็นประโยชน์ FrameLayout คืออะไรและทำอะไร?
คำตอบ:
คุณใช้ FrameLayout เพื่อซ้อนมุมมองชายน์ซ้อนกันโดยมีลูกล่าสุดอยู่ด้านบนของสแต็ก ในตัวอย่างด้านล่าง TextView เป็นเวอร์ชันล่าสุดดังนั้นจึงวางไว้ที่ด้านบนของ ImageView โดยอัตโนมัติ
ตัวอย่างเช่น:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/backgroundImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="centerCrop"
android:src="@drawable/bitmapie" />
<TextView
android:id="@+id/descTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginTop="70dp"
android:background="@android:color/holo_blue_light"
android:padding="10dp"
android:text="TextView placed at the top of the Imageview"
android:textColor="@android:color/white"
android:textSize="22sp" />
</FrameLayout>
เอาท์พุต:
FrameLayout
เป็นการใช้งานViewGroup
ไฟล์. มุมมองของเด็กจะถูกวาดขึ้นในกองซ้อนซึ่งมุมมองที่เพิ่มล่าสุดจะวาดไว้ที่ด้านบน โดยปกติคุณสามารถใช้หนึ่งในแนวทางถัดไปหรือรวมเข้าด้วยกัน:
FrameLayout
android:layout_gravity
เพื่อนำทางอีกวิธีหนึ่งที่เป็นที่นิยมในการใช้FrameLayout
:
Fragment
ภาชนะViewGroup
คุณสามารถพิจารณาคำว่าframe
เป็นกรอบรูปธรรมดา คุณทำอะไรกับกรอบนั้น? คุณสามารถวางรูปถ่ายในเฟรมนั้นทีละภาพ เช่นเดียวกับที่FrameLayout
เราสามารถวางมุมมอง (เลย์เอาต์ใด ๆ หรือวิดเจ็ตเช่นปุ่มข้อความรูปภาพเป็นต้น) ด้านบนของอื่น ๆ เนื่องจาก@ojonugwaแสดงให้คุณเห็นด้านบนของTextviewของรูปภาพ
iframe
เพราะฉันมาจากการพัฒนาเว็บ ขอบคุณสำหรับคำอธิบายที่ง่ายที่สุด
แน่ใจหรือว่าคุณใช้ Googled แล้ว
เค้าโครงเฟรมออกแบบมาเพื่อปิดกั้นพื้นที่บนหน้าจอเพื่อแสดงรายการเดียว โดยทั่วไปควรใช้ FrameLayout เพื่อเก็บมุมมองย่อยเดี่ยวเนื่องจากอาจเป็นเรื่องยากที่จะจัดระเบียบมุมมองของเด็กด้วยวิธีที่ปรับขนาดได้ตามขนาดหน้าจอที่แตกต่างกันโดยไม่ให้เด็กซ้อนทับกัน
อย่างไรก็ตามคุณสามารถเพิ่มลูกหลายคนใน FrameLayout และควบคุมตำแหน่งของพวกเขาภายใน FrameLayout โดยกำหนดแรงโน้มถ่วงให้กับเด็กแต่ละคนโดยใช้แอตทริบิวต์ android: layout_gravity
ความลับของ FrameLayout คือการจัดวางลูก ๆ ของมันอย่างไร แม้ว่าโดยปกติจะได้รับการออกแบบให้มีรายการเดียว แต่ก็มีความสุขที่จะวางองค์ประกอบอื่น ๆ ไว้ด้านบนซึ่งกันและกัน ดังนั้น FrameLayout จึงเป็นวิธีจัดการลำดับ Z ของมุมมองบนหน้าจอ
สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับเทคนิค UI สองสามอย่างตั้งแต่องค์ประกอบที่คล้าย HUD ไปจนถึงแผงเลื่อนไปจนถึงการเปลี่ยนภาพเคลื่อนไหวที่ซับซ้อนยิ่งขึ้น ในโพสต์นี้เราจะเห็นตัวอย่างสำหรับแต่ละคน
FrameLayout ออกแบบมาเพื่อแสดงทีละรายการ คุณสามารถมีหลายองค์ประกอบภายใน FrameLayout แต่แต่ละองค์ประกอบจะวางตำแหน่งตามด้านซ้ายบนของหน้าจอ องค์ประกอบที่ทับซ้อนกันจะแสดงซ้อนกัน ฉันได้สร้างเค้าโครง XML อย่างง่ายโดยใช้ FrameLayout ที่แสดงวิธีการทำงานนี้
โดยทั่วไปจะวางมุมมองหนึ่งไว้ด้านบนของอีกมุมมองหนึ่งเช่น:
ขยายข้อความบนรูปภาพ
<FrameLayout>
<ImageView>
<Textview>
</FrameLayout>