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

5
แอตทริบิวต์ที่มีชื่อเดียวกันใน attrs.xml สำหรับมุมมองที่กำหนดเอง
ฉันกำลังเขียนมุมมองที่กำหนดเองไม่กี่ตัวที่ใช้แอตทริบิวต์ที่มีชื่อเดียวกันร่วมกัน ใน<declare-styleable>ส่วนที่เกี่ยวข้องในattrs.xmlฉันต้องการใช้ชื่อเดียวกันสำหรับแอตทริบิวต์: <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="MyView1"> <attr name="myattr1" format="string" /> <attr name="myattr2" format="dimension" /> ... </declare-styleable> <declare-styleable name="MyView2"> <attr name="myattr1" format="string" /> <attr name="myattr2" format="dimension" /> ... </declare-styleable> </resources> ฉันได้รับข้อผิดพลาดบอกว่าmyattr1และmyattr2มีการกำหนดไว้แล้ว ฉันพบว่าฉันควรละเว้นformatแอตทริบิวต์สำหรับmyattr1และmyattr2ในMyView2แต่ถ้าฉันทำฉันได้รับข้อผิดพลาดต่อไปนี้ในคอนโซล: [2010-12-13 23:53:11 - MyProject] ERROR: In <declare-styleable> MyView2, unable to find attribute มีวิธีที่ฉันสามารถทำสิ่งนี้ได้หรือไม่บางทีการกำหนดชื่อบางอย่าง (แค่เดา)

6
ฉันต้องการตัวสร้างทั้งสามสำหรับมุมมองที่กำหนดเองของ Android หรือไม่
เมื่อสร้างมุมมองที่กำหนดเองฉันสังเกตว่าหลายคนดูเหมือนจะทำสิ่งนี้: public MyView(Context context) { super(context); // this constructor used when programmatically creating view doAdditionalConstructorWork(); } public MyView(Context context, AttributeSet attrs) { super(context, attrs); // this constructor used when creating view through XML doAdditionalConstructorWork(); } private void doAdditionalConstructorWork() { // init variables etc. } คำถามแรกของฉันคืออะไรเกี่ยวกับตัวสร้างMyView(Context context, AttributeSet attrs, int defStyle)? …

15
วิธีสร้างกล่องโต้ตอบที่กำหนดเองด้วยมุมโค้งมนใน Android
สิ่งที่ฉันพยายามทำ:ฉันกำลังพยายามสร้างกล่องโต้ตอบที่กำหนดเองใน Android ด้วยมุมโค้งมน เกิดอะไรขึ้น:ฉันสามารถสร้างไดอะล็อกแบบกำหนดเองได้ แต่ไม่มีมุมโค้งมน ฉันพยายามเพิ่มตัวเลือก แต่ก็ยังไม่สามารถทำมุมโค้งมนได้ ด้านล่างนี้เป็นรหัสของฉันเหมือนกัน: รหัส Java: private void launchDismissDlg() { dialog = new Dialog(getActivity(), android.R.style.Theme_Dialog); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(R.layout.dlg_dismiss); dialog.setCanceledOnTouchOutside(true); Button btnReopenId = (Button) dialog.findViewById(R.id.btnReopenId); Button btnCancelId = (Button) dialog.findViewById(R.id.btnCancelId); btnReopenId.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { } }); btnCancelId.setOnClickListener(new OnClickListener() { @Override public void onClick(View …

5
วิธีรับ enum ที่สร้างในรหัส attrs.xml
ฉันสร้างมุมมองที่กำหนดเอง (ค้นหาได้ที่นี่ ) โดยมีแอตทริบิวต์ที่สามารถกำหนดรูปแบบได้ประเภท enum ใน xml ตอนนี้ฉันสามารถเลือกหนึ่งในรายการ enum สำหรับแอตทริบิวต์ที่กำหนดเองของฉัน ตอนนี้ฉันต้องการสร้างเมธอดเพื่อตั้งค่านี้โดยทางโปรแกรม แต่ฉันไม่สามารถเข้าถึง enum ได้ attr.xml <declare-styleable name="IconView"> <attr name="icon" format="enum"> <enum name="enum_name_one" value="0"/> .... <enum name="enum_name_n" value="666"/> </attr> </declare-styleable> layout.xml <com.xyz.views.IconView android:id="@+id/heart_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" app:icon="enum_name_x"/> สิ่งที่ฉันต้องการคือ: mCustomView.setIcon(R.id.enum_name_x); แต่ฉันไม่พบ enum หรือฉันไม่รู้ว่าจะหา enum หรือชื่อ enum ได้อย่างไร

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

4
วิธีใช้ isInEditMode () เพื่อดูเค้าโครงด้วยมุมมองแบบกำหนดเองในตัวแก้ไข
ฉันต้องแก้ไขซอฟต์แวร์ที่มีมุมมองแบบกำหนดเองเมื่อฉันพยายามแก้ไข layout xml Eclipse บอกฉันว่า: ใช้ View.isInEditMode () ในมุมมองแบบกำหนดเองของคุณเพื่อข้ามโค้ดเมื่อแสดงใน Eclipse แต่ฉันไม่รู้ว่าฉันต้องใช้isInEditMode ()ในแอปอย่างไรและที่ไหน ไฟล์ xml ของฉันคือ <?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" android:background="#ff000000" > <TextView android:id="@+id/result" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="right" android:textSize="32dip" android:scrollbars="none" android:lines="1" android:freezesText="true" android:textColor="@color/result" /> <EditText android:id="@+id/input" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="left" android:textSize="28dip" android:scrollbars="none" android:singleLine="true" android:autoText="false" android:imeOptions="flagNoEnterAction|flagNoExtractUi" /> <ListView android:id="@+id/history" android:layout_width="fill_parent" …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.