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

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

18
วิธีสร้างความกว้าง DialogFragment เป็น Fill_Parent
ฉันกำลังทำงานกับแอปพลิเคชัน Android ที่ฉันใช้DialogFragmentเพื่อแสดงกล่องโต้ตอบ แต่ความกว้างของมันมีขนาดเล็กมาก ฉันจะทำให้กว้างขนาดนี้fill_parentได้อย่างไร? public class AddNoteDialogFragment extends DialogFragment { public AddNoteDialogFragment() { // Empty constructor required for DialogFragment } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { getDialog().setTitle(getString(R.string.app_name)); View view = inflater.inflate(R.layout.fragment_add_note_dialog, container); return view; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { Dialog dialog = super.onCreateDialog(savedInstanceState); …

11
java.lang.IllegalStateException: เด็กที่ระบุมีพาเรนต์อยู่แล้ว
ฉันกำลังใช้ชิ้นส่วนเมื่อฉันสร้างชิ้นส่วนในครั้งแรก แต่ครั้งที่สองฉันได้รับข้อยกเว้นนี้ ฉันไม่พบบรรทัดที่ฉันได้รับข้อผิดพลาด? 04-04 08:51:54.320: E/AndroidRuntime(29713): FATAL EXCEPTION: main 04-04 08:51:54.320: E/AndroidRuntime(29713): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. 04-04 08:51:54.320: E/AndroidRuntime(29713): at android.view.ViewGroup.addViewInner(ViewGroup.java:3013) 04-04 08:51:54.320: E/AndroidRuntime(29713): at android.view.ViewGroup.addView(ViewGroup.java:2902) 04-04 08:51:54.320: E/AndroidRuntime(29713): at android.view.ViewGroup.addView(ViewGroup.java:2859) 04-04 08:51:54.320: E/AndroidRuntime(29713): at android.view.ViewGroup.addView(ViewGroup.java:2839) 04-04 …


7
ข้อผิดพลาด: ปัญหาการแสดงผลไม่พบคลาสต่อไปนี้ android.support.v7.internal.widget.ActionBarOverlayLayout
ฉันเพิ่งเริ่มต้นพัฒนาแอพ android เมื่อฉันสร้างโปรเจ็กต์ใหม่บน Android Studio 1.1.0 มันแสดงข้อผิดพลาดนี้ " ปัญหาในการแสดงผลไม่พบคลาสต่อไปนี้ android.support.v7.internal.widget.ActionBarOverlayLayout " ตอนนี้ฉันได้ค้นหาเกี่ยวกับสิ่งนี้ใน google แล้วและฉันพบว่าอาจมี 3 วิธีแก้ปัญหาที่คนส่วนใหญ่มอบให้ พวกเขากล่าวว่า: เปลี่ยน api (จากบานหน้าต่างแสดงตัวอย่าง) จาก 22 เป็น 21 หรือ เปลี่ยนธีมแอพจาก "ธีมโครงการ" เป็นธีมอื่น ๆ ตรวจสอบให้แน่ใจว่าได้นำเข้าไลบรารี appcompat-v7 ที่ถูกต้องในโครงสร้างโปรเจ็กต์ของคุณ -> การอ้างอิง อ้างอิงขั้นตอนเหล่านี้ : เพิ่มตัวระบุโปรเจ็กต์ฟีเจอร์ไลบรารีสนับสนุนในส่วนการอ้างอิง ตัวอย่างเช่นหากต้องการรวมโปรเจ็กต์ appcompat ให้เพิ่มคอมไพล์ "com.android.support:appcompat-v7:18.0.+" ลงในส่วนการอ้างอิงดังที่แสดงในตัวอย่างต่อไปนี้: dependencies { ... compile "com.android.support:appcompat-v7:18.0.+" } หมายเหตุ: lib …


11
วิธีปรับแต่งเลย์เอาต์ของ snackBar
มีวิธีใดในการเปลี่ยนเค้าโครงของ snackBar เป็นมุมมองแบบกำหนดเองหรือไม่? ตอนนี้กลายเป็นสีดำและเราสามารถเปลี่ยนสีพื้นหลังได้ แต่ฉันไม่รู้วิธีที่ถูกต้องในการขยายเค้าโครงใหม่และทำให้เป็นพื้นหลัง snackBars? ขอบคุณ ...


5
EditText ที่เพิ่มไม่ใช่ TextInputEditText โปรดเปลี่ยนไปใช้คลาสนั้นแทน
ฉันใช้EditTextภายใน a TextInputLayoutแต่หลังจากอัปเกรดไลบรารีการสนับสนุนเป็น 23.2.0 ฉันได้รับคำเตือนนี้ใน logcat ความแตกต่างระหว่างปกติEditTextกับ a TextInputEditTextคืออะไร? ฉันไม่พบเอกสารประกอบใด ๆ

4
รับขอบของมุมมอง
ฉันจะรับมูลค่าขอบของมุมมองจากกิจกรรมได้อย่างไร มุมมองสามารถเป็นประเภทใดก็ได้ หลังจากค้นหาอยู่สักพักฉันก็พบวิธีในการเพิ่มมุมมอง แต่ไม่พบอะไรเลยใน Margin ใครสามารถช่วย? ฉันลองอะไรแบบนี้ ViewGroup.LayoutParams vlp = view.getLayoutParams(); int marginBottom = ((LinearLayout.LayoutParams) vlp).bottomMargin; ใช้งานได้ แต่ในโค้ดด้านบนฉันได้สันนิษฐานว่ามุมมองเป็นไฟล์LinearLayout. แต่ฉันต้องได้รับmarginแอตทริบิวต์แม้ว่าฉันจะไม่รู้ประเภทมุมมองก็ตาม

4
การใช้ ListAdapter เพื่อเติม LinearLayout ภายในเค้าโครง ScrollView
ฉันหันหน้าไปทางปัญหาที่พบบ่อยมาก: ScrollViewฉันวางออกกิจกรรมและตอนนี้ก็จะเปิดออกก็ควรแสดงไม่กี่รายการที่อยู่ในนี้ วิธีปกติในการทำเช่นนั้นคือใช้สิ่งที่มีอยู่ListAdapterเชื่อมต่อกับListViewและบูมฉันจะมีรายการของฉัน แต่คุณไม่ควรวางสิ่งที่ซ้อนกันListViewไว้ในScrollViewขณะที่มันเลื่อนขึ้น - แม้แต่ Android Lint ก็บ่นเกี่ยวกับเรื่องนี้ นี่คือคำถามของฉัน: ฉันจะเชื่อมต่อListAdapterกับ a LinearLayoutหรือสิ่งที่คล้ายกันได้อย่างไร ฉันรู้ว่าโซลูชันนี้จะไม่ปรับขนาดสำหรับรายการจำนวนมาก แต่รายการของฉันสั้นมาก (<10 รายการ) ดังนั้นจึงไม่จำเป็นต้องใช้มุมมองซ้ำ ประสิทธิภาพที่ชาญฉลาดฉันสามารถใช้ชีวิตได้ด้วยการวางมุมมองทั้งหมดลงในไฟล์LinearLayout. วิธีแก้ปัญหาหนึ่งที่ฉันคิดขึ้นมาคือการวางเค้าโครงกิจกรรมที่มีอยู่ในส่วน headerView ของไฟล์ListView. แต่รู้สึกเหมือนกำลังใช้กลไกนี้ในทางที่ผิดดังนั้นฉันจึงมองหาวิธีที่สะอาดกว่านี้ ไอเดีย? อัปเดต:เพื่อสร้างแรงบันดาลใจไปในทิศทางที่ถูกต้องฉันเพิ่มเค้าโครงตัวอย่างเพื่อแสดงปัญหาของฉัน: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/news_detail_layout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:visibility="visible"> <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#FFF" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:paddingLeft="@dimen/news_detail_layout_side_padding" android:paddingRight="@dimen/news_detail_layout_side_padding" android:paddingTop="@dimen/news_detail_layout_vertical_padding" android:paddingBottom="@dimen/news_detail_layout_vertical_padding" > <TextView …

12
การตั้งค่า EditText imeOptions เป็น actionNext ไม่มีผล
ฉันมีไฟล์เลย์เอาต์ xml ที่ค่อนข้างซับซ้อน (ไม่ใช่จริงๆ) หนึ่งในมุมมองคือ LinearLayout ( v1) ที่มีลูกสองคน: EditText ( v2) และ LinearLayout ( v3) อีกอัน LinearLayout ลูกนั้นมี EditText ( v4) และ ImageView ( v5) สำหรับ EditText v2 ฉันมี imeOptions เป็น android:imeOptions="actionNext" แต่เมื่อผมใช้ app แป้นพิมพ์ที่returnไม่ได้ตรวจสอบไปและฉันต้องการที่จะเปลี่ยนไปnext nextฉันจะแก้ไขปัญหานี้ได้อย่างไร? นอกจากนี้เมื่อผู้ใช้คลิกถัดไปฉันต้องการโฟกัสไปที่ EditText v4 ฉันจะทำแบบนี้? สำหรับผู้ที่ต้องการดูรหัสจริงๆ: <LinearLayout android:id="@+id/do_txt_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/col6" android:orientation="vertical" android:visibility="gone" > …

20
จะสร้างมุมมองที่มีมุมมนได้อย่างไร?
ฉันกำลังพยายามสร้างมุมมองใน Android ที่มีขอบมน วิธีแก้ปัญหาที่ฉันพบคือการกำหนดรูปร่างที่มีมุมโค้งมนและใช้เป็นพื้นหลังของมุมมองนั้น นี่คือสิ่งที่ฉันทำกำหนด Drawable ตามที่ระบุด้านล่าง: <padding android:top="2dp" android:bottom="2dp"/> <corners android:bottomRightRadius="20dp" android:bottomLeftRadius="20dp" android:topLeftRadius="20dp" android:topRightRadius="20dp"/> ตอนนี้ฉันใช้สิ่งนี้เป็นพื้นหลังสำหรับเลย์เอาต์ของฉันดังนี้: <LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginBottom="10dp" android:clipChildren="true" android:background="@drawable/rounded_corner"> มันใช้งานได้ดีฉันเห็นว่ามุมมองมีขอบมน แต่เลย์เอาต์ของฉันมีมุมมองเด็กอื่น ๆ มากมายพูดว่า ImageView หรือไฟล์MapView. เมื่อฉันวางImageViewภายในเลย์เอาต์ด้านบนมุมของภาพจะไม่ถูกตัด / ครอบตัด แต่จะปรากฏเต็ม ฉันได้เห็นวิธีการแก้ปัญหาอื่น ๆ ที่จะทำให้การทำงานเช่นเดียวที่อธิบายที่นี่ แต่มีวิธีการกำหนดมุมโค้งมนสำหรับมุมมองหรือไม่และมุมมองย่อยทั้งหมดอยู่ในมุมมองหลักที่มีมุมโค้งมนหรือไม่?

6
จะเพิ่มตัวคั่นส่วนหนึ่งสำหรับ Navigation Drawer ใน Android ได้อย่างไร
ฉันมีลิ้นชักการนำทางเหมือนภาพนี้ ฉันต้องการเพิ่มตัวคั่นส่วน (เช่นเส้นคั่นดาวเนปจูน) ดูเหมือนง่าย แต่ฉันไม่พบสิ่งใดในเว็บที่เป็นประโยชน์สำหรับกรณีของฉัน นี่คือ MainActivity ของฉัน: public class MainActivity extends Activity { private DrawerLayout mDrawerLayout; private ListView mDrawerList; private ActionBarDrawerToggle mDrawerToggle; private CharSequence mDrawerTitle; private CharSequence mTitle; private String[] mPlanetTitles; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTitle = mDrawerTitle = getTitle(); mPlanetTitles = getResources().getStringArray(R.array.planets_array); mDrawerLayout = …

11
จะเพิ่มตัวแบ่ง (แนวตั้ง) ให้กับ LinearLayout แนวนอนได้อย่างไร?
ฉันกำลังพยายามเพิ่มตัวแบ่งให้กับเลย์เอาต์เชิงเส้นแนวนอน แต่ฉันไปไหนไม่ได้เลย ตัวแบ่งไม่แสดง ฉันเป็นมือใหม่กับ Android นี่คือ XML เค้าโครงของฉัน: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/llTopBar" android:orientation="horizontal" android:divider="#00ff00" android:dividerPadding="22dip" android:showDividers="middle" > <Button android:layout_width="wrap_content" android:layout_height="match_parent" android:text="asdf" /> <Button android:layout_width="wrap_content" android:layout_height="match_parent" android:text="asdf" /> </LinearLayout> </RelativeLayout>

2
Application Skeleton เพื่อรองรับหลายหน้าจอ
อย่างที่เราทราบกันดีว่า Android มาพร้อมกับอุปกรณ์ต่างๆที่มีคุณสมบัติความละเอียดและขนาดหน้าจอที่แตกต่างกันดังนั้นในขณะที่พัฒนาแอปพลิเคชันที่รองรับหน้าจอหลายหน้าจอ (เล็กและใหญ่) มีอุปสรรคด้านขนาดและรูปแบบ สิ่งนี้นำไปสู่การผสมผสานขนาดหน้าจอความละเอียดและ DPI ที่แตกต่างกันและสร้างความท้าทายในการออกแบบและพัฒนาสำหรับอุปกรณ์ Android ในขณะที่ผู้ผลิตรายอื่น (ไม่ใช่ Android) มีความละเอียดและ DPI ที่แตกต่างกัน แต่ก็มีขนาดหน้าจอเดียวกันและความละเอียดจะเป็นไปตามอัตราส่วนเดียวกัน ดังนั้นจึงสามารถสร้างรูปภาพให้เหมาะกับอุปกรณ์ที่ไม่ใช่ Android คำถามของฉันคือมีขั้นตอนหรือสถาปัตยกรรมที่เหมาะสมที่ควรปฏิบัติตามเพื่อให้เป็นไปตามข้อกำหนดหรือไม่? จำไว้ว่าเรามีแท็บเล็ตที่มีขนาดและความละเอียดแตกต่างกัน ฉันทราบว่านักพัฒนา Androidมีข้อมูลนี้ แต่มุมมองของฉันมาจากการนำไปใช้งาน จากความรู้ของฉันสิ่งที่ฉันเข้าใจคือการออกแบบกราฟิก Android แม้แต่โปรแกรมเมอร์ก็ต้องรู้แนวคิดการออกแบบ

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