คำถามติดแท็ก android-layout

โครงร่างกำหนดโครงสร้างที่มองเห็นได้สำหรับส่วนติดต่อผู้ใช้เช่น UI สำหรับกิจกรรมส่วนหรือวิดเจ็ตแอป



20
ความแตกต่างระหว่างแรงโน้มถ่วงและ layout_gravity ใน Android คืออะไร?
ฉันรู้ว่าเราสามารถตั้งค่าต่อไปนี้เพื่อandroid:gravityและ android:layout_gravityคุณสมบัติ: center center_vertical center_horizontalฯลฯ แต่ฉันสับสนเกี่ยวกับทั้งสองอย่างนี้ อะไรคือความแตกต่างระหว่างการใช้งานandroid:gravityและandroid:layout_gravity?

30
คุณต้องใช้ธีม Theme.AppCompat (หรือลูกหลาน) กับกิจกรรมนี้
Android Studio 0.4.5 เอกสารประกอบ Android สำหรับการสร้างกล่องโต้ตอบแบบกำหนดเอง: http://developer.android.com/guide/topics/ui/dialogs.html หากคุณต้องการไดอะล็อกที่กำหนดเองคุณสามารถแสดงกิจกรรมเป็นไดอะล็อกแทนที่จะใช้ไดอะล็อก API เพียงสร้างกิจกรรมและกำหนดธีมเป็น Theme.Holo.Dialog ใน<activity>องค์ประกอบรายการ: <activity android:theme="@android:style/Theme.Holo.Dialog" > อย่างไรก็ตามเมื่อฉันลองทำสิ่งนี้ฉันจะได้รับข้อยกเว้นดังนี้: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity ฉันสนับสนุนสิ่งต่อไปนี้และฉันไม่สามารถใช้บางอย่างที่มากกว่า 10 สำหรับนาที: minSdkVersion 10 targetSdkVersion 19 ในรูปแบบของฉันฉันมีดังต่อไปนี้: <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> และในรายการของฉันฉันมีสิ่งนี้สำหรับกิจกรรม: <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" …

7
"เครื่องมือ: บริบท" ในไฟล์เลย์เอาต์ของ Android คืออะไร
เริ่มจาก ADT เวอร์ชั่นใหม่เมื่อเร็ว ๆ นี้ฉันสังเกตเห็นว่าแอททริบิวใหม่นี้ในไฟล์ XML ของเลย์เอาต์ตัวอย่างเช่น <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" /> "เครื่องมือ: บริบท" ใช้ทำอะไร มันจะรู้เส้นทางที่แน่นอนไปยังกิจกรรมที่เขียนที่นั่นได้อย่างไร มันดูแพคเกจของแอพพลิเคชั่นหรือไม่? มีการ จำกัด คลาสที่ขยายบริบทหรือกิจกรรมเท่านั้นหรือไม่ มันสามารถใช้งานได้สำหรับรายการ ListView ฯลฯ ?

30
วิธีซ่อนแถบหัวเรื่องสำหรับกิจกรรมใน XML ด้วยธีมที่กำหนดเองที่มีอยู่
ฉันต้องการซ่อนแถบหัวเรื่องสำหรับกิจกรรมบางอย่างของฉัน ปัญหาคือฉันใช้สไตล์กับกิจกรรมทั้งหมดของฉันดังนั้นฉันจึงไม่สามารถกำหนดธีมให้@android:style/Theme.NoTitleBarเป็น การใช้ธีมNoTitleBarในฐานะผู้ปกครองสำหรับสไตล์ของฉันจะลบแถบหัวเรื่องออกจากกิจกรรมทั้งหมดของฉัน ฉันสามารถตั้งค่าไอเท็มสไตล์หัวเรื่องได้หรือไม่?

30
วิธีการเปลี่ยนแบบอักษรครอบครัวของ TextView ใน Android
ดังนั้นฉันต้องการเปลี่ยนandroid:fontFamilyใน Android แต่ฉันไม่เห็นแบบอักษรที่กำหนดไว้ล่วงหน้าใน Android ฉันจะเลือกหนึ่งในสิ่งที่กำหนดไว้ล่วงหน้าได้อย่างไร ฉันไม่ต้องการกำหนด TypeFace ของฉันเอง แต่สิ่งที่ฉันต้องการคือสิ่งที่แตกต่างจากที่แสดงตอนนี้ <TextView android:id="@+id/HeaderText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="52dp" android:gravity="center" android:text="CallerBlocker" android:textSize="40dp" android:fontFamily="Arial" /> ดูเหมือนว่าสิ่งที่ฉันทำที่นั่นจะไม่ได้ผลจริงๆ! BTW android:fontFamily="Arial"เป็นความพยายามที่โง่!

20
ปุ่ม Android มาตรฐานที่มีสีแตกต่างกัน
ฉันต้องการเปลี่ยนสีของปุ่ม Android มาตรฐานเล็กน้อยเพื่อให้ตรงกับตราสินค้าของลูกค้า วิธีที่ดีที่สุดที่ฉันพบว่าทำเช่นนี้คือการเปลี่ยนButtondrawable ของ drawable ที่อยู่ในres/drawable/red_button.xml: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/red_button_pressed" /> <item android:state_focused="true" android:drawable="@drawable/red_button_focus" /> <item android:drawable="@drawable/red_button_rest" /> </selector> แต่การทำนั้นต้องการให้ฉันสร้างสาม drawable ที่แตกต่างกันสำหรับแต่ละปุ่มฉันต้องการปรับแต่ง (หนึ่งสำหรับปุ่มที่เหลือหนึ่งเมื่อเน้นและหนึ่งเมื่อกด) ดูเหมือนจะซับซ้อนและไม่แห้งเกินที่ฉันต้องการ สิ่งที่ฉันอยากทำก็คือใช้การเปลี่ยนสีเป็นปุ่ม มีวิธีที่ง่ายกว่าในการเปลี่ยนสีของปุ่มมากกว่าที่ฉันทำหรือไม่?




18
ฉันจะจัดมุมมองที่ด้านล่างของหน้าจอได้อย่างไร
นี่คือรหัสรูปแบบของฉัน <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:text="@string/welcome" android:id="@+id/TextView" android:layout_width="fill_parent" android:layout_height="wrap_content"> </TextView> <LinearLayout android:id="@+id/LinearLayout" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="bottom"> <EditText android:id="@+id/EditText" android:layout_width="fill_parent" android:layout_height="wrap_content"> </EditText> <Button android:text="@string/label_submit_button" android:id="@+id/Button" android:layout_width="wrap_content" android:layout_height="wrap_content"> </Button> </LinearLayout> </LinearLayout> สิ่งนี้ดูเหมือนว่าอยู่ทางซ้ายและสิ่งที่ฉันต้องการให้ดูเหมือนอยู่ทางขวา คำตอบที่ชัดเจนคือการตั้งค่า TextView ให้ fill_parent บนความสูง แต่สิ่งนี้ทำให้ไม่มีที่ว่างเหลือสำหรับปุ่มหรือฟิลด์รายการ โดยพื้นฐานแล้วปัญหาคือฉันต้องการให้ปุ่มส่งและรายการข้อความเป็นความสูงคงที่ที่ด้านล่างและมุมมองข้อความเพื่อเติมเต็มพื้นที่ที่เหลือ ในทำนองเดียวกันในเลย์เอาต์แบบเส้นแนวนอนฉันต้องการให้ปุ่มส่งเพื่อตัดเนื้อหาและสำหรับการป้อนข้อความเพื่อเติมส่วนที่เหลือของพื้นที่ หากรายการแรกในเลย์เอาต์แบบเส้นถูกบอกให้เติม _parent มันจะทำสิ่งนั้นอย่างแน่นอนทำให้ไม่มีที่ว่างสำหรับรายการอื่น ฉันจะรับไอเท็มที่อยู่ในเลย์เอาต์เชิงเส้นก่อนเพื่อเติมช่องว่างทั้งหมดนอกเหนือจากค่าต่ำสุดที่จำเป็นสำหรับรายการที่เหลือในเลย์เอาต์ได้อย่างไร รูปแบบสัมพัทธ์เป็นคำตอบที่แน่นอน: <?xml version="1.0" …

19
โฟลเดอร์เค้าโครง Android สามารถมีโฟลเดอร์ย่อยได้หรือไม่?
ตอนนี้ฉันกำลังจัดเก็บไฟล์ xml ทุกรูปแบบไว้ในres/layoutโฟลเดอร์ดังนั้นจึงเป็นไปได้และง่ายต่อการจัดการโครงการขนาดเล็ก แต่เมื่อมีกรณีของโครงการขนาดใหญ่และหนักแล้วควรมีลำดับชั้นและโฟลเดอร์ย่อยที่จำเป็นภายใน โฟลเดอร์เค้าโครง สำหรับเช่น layout -- layout_personal -- personal_detail.xml -- personal_other.xml --layout_address -- address1.xml -- address2.xml เช่นเดียวกับที่เราต้องการให้มีโฟลเดอร์ย่อยสำหรับแอพพลิเคชั่นขนาดใหญ่ดังนั้นจะมีวิธีการอย่างไรในโครงการ Android? ฉันสามารถสร้างโฟลเดอร์ย่อย layout-personal และ layout_address ภายในโฟลเดอร์ layout ได้ แต่เมื่อถึงเวลาที่จะเข้าถึงไฟล์เลย์เอาท์ xml โดยใช้ R.layout ._______ ในเวลานั้นไม่มีเลย์เอาต์ xml แบบผุดขึ้นข้างใน เมนู.

17
มุมมองของ getWidth () และ getHeight () ส่งคืนค่า 0
ฉันกำลังสร้างองค์ประกอบทั้งหมดในโครงการ Android ของฉันแบบไดนามิก ฉันพยายามรับความกว้างและความสูงของปุ่มเพื่อให้สามารถหมุนปุ่มนั้นได้ ฉันแค่พยายามเรียนรู้วิธีทำงานกับภาษา Android อย่างไรก็ตามมันจะคืนค่า 0 ฉันทำวิจัยบางอย่างและฉันเห็นว่าต้องทำที่อื่นนอกเหนือจากonCreate()วิธีการ ถ้ามีคนสามารถยกตัวอย่างให้ฉันฟังได้ว่ามันยอดเยี่ยมมาก นี่คือรหัสปัจจุบันของฉัน: package com.animation; import android.app.Activity; import android.os.Bundle; import android.view.animation.Animation; import android.view.animation.LinearInterpolator; import android.view.animation.RotateAnimation; import android.widget.Button; import android.widget.LinearLayout; public class AnimateScreen extends Activity { //Called when the activity is first created. @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout ll = …

14
เปอร์เซ็นต์ความกว้างใน RelativeLayout
ฉันกำลังทำงานกับเค้าโครงแบบฟอร์มสำหรับการเข้าสู่ระบบActivityในแอพ Android ของฉัน ภาพด้านล่างเป็นรูปแบบที่ฉันต้องการ: ผมสามารถที่จะบรรลุรูปแบบนี้มีดังต่อไปXML ปัญหาคือมันแฮ็คเล็กน้อย ฉันต้องเขียนโค้ดความกว้างสำหรับ EditText ของโฮสต์ โดยเฉพาะฉันต้องระบุ: android:layout_width="172dp" ฉันต้องการให้เปอร์เซ็นต์ความกว้างกับโฮสต์และพอร์ตของ EditText (บางอย่างเช่น 80% สำหรับโฮสต์, 20% สำหรับพอร์ต) เป็นไปได้หรือไม่ XML ต่อไปนี้ใช้งานได้กับ Droid ของฉัน แต่ดูเหมือนจะไม่สามารถใช้ได้กับทุกหน้าจอ ฉันต้องการทางออกที่แข็งแกร่งกว่านี้จริงๆ <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/main" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/host_label" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/home" android:paddingLeft="15dp" android:paddingTop="0dp" android:text="host" android:textColor="#a5d4e2" android:textSize="25sp" android:textStyle="normal" /> <TextView android:id="@+id/port_label" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/home" android:layout_toRightOf="@+id/host_input" android:paddingTop="0dp" …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.