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

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


15
ตั้งค่ารหัสทรัพยากรที่วาดได้ใน android: src สำหรับ ImageView โดยใช้การผูกข้อมูลใน Android
ฉันกำลังพยายามตั้งรหัสทรัพยากรที่วาดได้เป็น android: src ของ ImageView โดยใช้การผูกข้อมูล นี่คือวัตถุของฉัน: public class Recipe implements Parcelable { public final int imageResource; // resource ID (e.g. R.drawable.some_image) public final String title; // ... public Recipe(int imageResource, String title /* ... */) { this.imageResource = imageResource; this.title = title; } // ... } นี่คือเค้าโครงของฉัน: <?xml version="1.0" …

10
ฉันต้องการเชื่อมต่อสองสตริงสำหรับ TextView ใน Android, Data Binding Api
ฉันใช้DataBindingApi เพื่อตั้งค่ามุมมองในเค้าโครงของ Android นี่คือเค้าโครงของฉัน layout.xml <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> <variable name="user" type="testing.sampleapp.com.sampleapp.User"/> </data> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{ "Hello " + user.firstName}"/> </LinearLayout> ฉันต้องการ TextView เพื่อแสดงสวัสดีชื่อผู้ใช้ วิธีบรรลุสิ่งนี้โดยใช้ API การผูกข้อมูล

10
ใช้แบบอักษรที่กำหนดเองใน Android TextView โดยใช้ xml
ฉันได้เพิ่มไฟล์ฟอนต์ที่กำหนดเองลงในโฟลเดอร์สินทรัพย์ / ฟอนต์ของฉัน ฉันจะใช้มันจาก XML ของฉันได้อย่างไร ฉันสามารถใช้งานได้จากรหัสดังนี้: TextView text = (TextView) findViewById(R.id.textview03); Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/Molot.otf"); text.setTypeface(tf); ฉันไม่สามารถทำได้จาก XML โดยใช้android:typeface="/fonts/Molot.otf"แอตทริบิวต์?

17
วิธีตรวจจับการปัดไปทางซ้ายหรือขวาใน Android
ฉันมีEditTextมุมมองใน Android ในสิ่งนี้ฉันต้องการตรวจจับการปัดไปทางซ้ายหรือขวา ฉันสามารถรับมันได้ในพื้นที่ว่างโดยใช้รหัสด้านล่าง แต่สิ่งนี้ใช้ไม่ได้เมื่อฉันปัดบนEditTextไฟล์. ฉันจะทำอย่างไร? โปรดแจ้งให้เราทราบหากฉันทำอะไรผิดพลาด ขอบคุณ. รหัสที่ใช้: switch (touchevent.getAction()) { case MotionEvent.ACTION_DOWN: { oldTouchValue = touchevent.getX(); break; } case MotionEvent.ACTION_UP: { float currentX = touchevent.getX(); if (oldTouchValue < currentX) { // swiped left } if (oldTouchValue > currentX ) { swiped right } break; } }

6
ปุ่ม Android พร้อมไอคอนและข้อความ
ฉันมีปุ่มแบบนี้ในแอปของฉัน: <Button android:id="@+id/bSearch" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="16dp" android:text="Search" android:textSize="24sp" /> ฉันพยายามสร้างปุ่มเดียวกันกับข้อความและไอคอน android: drawableLeft ใช้ไม่ได้สำหรับฉัน (อาจจะเป็นไปได้ แต่ฉันไม่รู้วิธีตั้งค่าความสูงสูงสุดให้กับไอคอน) ดังนั้นฉันจึงสร้าง LinearLayout ด้วย ImageView และ TextView และทำให้มันทำหน้าที่เหมือนปุ่ม: <LinearLayout android:id="@+id/bSearch2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@android:drawable/btn_default" android:clickable="true" android:padding="16dp" android:orientation="horizontal" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:adjustViewBounds="true" android:maxHeight="30dp" android:maxWidth="30dp" android:scaleType="fitCenter" android:src="@drawable/search_icon" /> <TextView android:id="@+id/tvSearchCaption" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:textSize="24sp" android:paddingRight="30dp" android:gravity="center" …

11
วิธีแก้ไขข้อความแก้ไขไม่ได้ แต่คลิกได้ใน JAVA
เป็นไปได้หรือไม่ที่จะทำให้EditTextคลิกได้ แต่แก้ไขไม่ได้ ฉันไม่ต้องการให้มันแก้ไขได้ (แป้นพิมพ์ไม่ควรเกิดขึ้นและเราไม่ควรเปลี่ยนคำใบ้) อันที่จริงฉันต้องการใช้แก้ไขข้อความเป็นรูปภาพพร้อมคำใบ้ (ซึ่งไม่สามารถเปลี่ยนแปลงได้) ฉันรู้ว่าวิธีที่แท้จริงคือการใช้ an ImageViewand one TextViewแต่ฉันอยากให้ลองใช้EditTextเพราะจากนั้นฉันจะใช้มุมมองเดียวแทน 2 นอกจากนี้ทุกสิ่งยังเป็นแบบไดนามิกดังนั้นจึงไม่มี XML สำหรับข้อกำหนดข้างต้นโซลูชันใน XML คือandroid:editable="false"แต่ฉันต้องการใช้สิ่งนี้ใน Java แต่, ถ้าฉันใช้: - et.setEnabled(false); หรือ et.setKeyListener(null); ทำให้EditTextไม่สามารถแก้ไขได้ แต่ในขณะเดียวกันก็ทำให้ไม่สามารถคลิกได้เช่นกัน

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" …

16
จำกัดความสูงของ ListView บน Android
ฉันต้องการแสดงปุ่มใต้ไฟล์ListView. ปัญหาคือถ้าListViewขยายออก (เพิ่มรายการ ... ) ปุ่มจะถูกผลักออกจากหน้าจอ ฉันลองLinearLayoutชั่งน้ำหนัก (ตามที่แนะนำในAndroid: เหตุใดจึงไม่มี maxHeight สำหรับมุมมอง ) แต่ฉันคิดว่าน้ำหนักผิดหรือไม่ได้ผล นอกจากนี้ฉันพบคำแนะนำในการใช้ไฟล์RelativeLayout. ListViewนั้นก็จะถูกกำหนดข้างต้นปุ่มที่มีandroid:layout_aboveพารามิเตอร์ ปัญหานี้คือฉันไม่รู้ว่าจะวางตำแหน่งปุ่มอย่างไรในภายหลัง ในตัวอย่างที่ฉันพบมุมมองด้านล่างListViewถูกปรับโดยใช้android:layout_alignParentBottomแต่ฉันไม่ต้องการให้ปุ่มของฉันยึดติดกับด้านล่างของหน้าจอ มีแนวคิดใดบ้างที่นอกเหนือจากการใช้ setHeight-method และการคำนวณพื้นที่ที่ต้องการ แก้ไข: ฉันได้รับคำตอบที่เป็นประโยชน์มากมาย โซลูชันของ bigstone & user639183 ทำงานได้เกือบสมบูรณ์ อย่างไรก็ตามฉันต้องเพิ่มช่องว่าง / ระยะขอบพิเศษที่ด้านล่างของปุ่มเนื่องจากมันจะยังคงถูกผลักออกไปครึ่งทางจากหน้าจอ (แต่ก็หยุดแล้ว) คำตอบของ Adinia พร้อมเลย์เอาต์แบบสัมพัทธ์จะใช้ได้ก็ต่อเมื่อคุณต้องการให้ปุ่มคงที่ที่ด้านล่างของหน้าจอ ไม่ใช่สิ่งที่ฉันตั้งใจไว้ แต่ยังอาจเป็นประโยชน์สำหรับคนอื่น ๆ วิธีแก้ปัญหาของ AngeloS เป็นวิธีที่ฉันเลือกในตอนท้ายเพราะมันเพิ่งสร้างเอฟเฟกต์ที่ฉันต้องการ อย่างไรก็ตามฉันได้ทำการเปลี่ยนแปลงเล็กน้อยสองครั้งกับLinearLayoutปุ่มรอบ ๆ ปุ่ม: ก่อนอื่นเนื่องจากฉันไม่ต้องการให้มีค่าสัมบูรณ์ในเค้าโครงของฉันฉันจึงเปลี่ยนandroid:layout_height="45px"เป็นwrap_contentซึ่งก็ใช้ได้ดีเช่นกัน อย่างที่สองเนื่องจากฉันต้องการให้ปุ่มอยู่ตรงกลางในแนวนอนซึ่งรองรับเฉพาะในแนวตั้งLinearLayoutฉันจึงเปลี่ยน android: orientation = "horizontal" เป็น …

4
ฉันสามารถใช้รหัสเดียวกันในรูปแบบอื่นใน Android ได้หรือไม่
ฉันยังใหม่กับการพัฒนา Android ใช้ ID เดียวกันสำหรับรูปภาพและไฟล์ XML ที่TextViewsแตกต่างกันได้Layoutหรือไม่ เมื่อคราสจัดรายการให้ฉันโดยอัตโนมัติมันจะแสดงรายการตัวแปรโครงร่างทั้งหมดจากโครงการดังนั้นมันจะชนกันหรือไม่ จนถึงตอนนี้ฉันยังไม่สังเกตเห็นปัญหาใด ๆ ในการใช้ ID เดียวกันในรูปแบบที่แตกต่างกัน แต่ฉันกังวลในระยะยาว

15
gen มีอยู่แล้ว แต่ไม่ใช่โฟลเดอร์ต้นทาง
ฉันกำลังพัฒนาโปรเจ็กต์ Android ของฉันหลังจากที่ฉันลบไลบรารีที่ไม่ได้ใช้ฉันพบข้อผิดพลาด: myproject/gen already exists but is not a source folder. Convert to a source folder or rename it ในรหัสกิจกรรมของฉันทรัพยากรทั้งหมดจากR.javaไม่สามารถแก้ไขได้ ฉันลองคลิกขวาที่โครงการของฉัน => Java Build Path => ใต้แท็บ "Source" ฉันเพิ่ม gen / as source แต่ก็ไม่ช่วยแก้ปัญหา ... ทำไมจะกำจัดปัญหานี้ได้อย่างไร? ---- อัพเดท ---- ฉันพบว่า eclipse ยังบ่นว่า "Project ไม่มีไฟล์ project.properties! แก้ไขคุณสมบัติของโปรเจ็กต์เป็นชุดเดียว" แต่ฉันมีไฟล์ project.properties ภายใต้โครงการของฉัน …

22
แอพขัดข้องเมื่อพยายามใช้ RecyclerView บน Android 5.0
ฉันกำลังพยายามยุ่งกับ RecyclerView ใหม่และเมื่อใดก็ตามที่ฉันพยายามเรียกใช้แอปของฉันจะขัดข้องทันที มันทำให้ฉัน NullPointerException android.support.v7.widget.RecyclerViewพยายามที่จะวิธีการเข้าถึงจาก ฉันดูโพสต์อื่น ๆ และเห็นว่าคนส่วนใหญ่ไม่มีcompile 'com.android.support:recyclerview-v7:+'แต่ฉันลองแล้วและมันก็ไม่ได้ช่วยอะไรเลย ไม่แน่ใจว่าจะทำอย่างไรในตอนนี้ความช่วยเหลือใด ๆ จะได้รับการชื่นชม บันทึกข้อผิดพลาดที่นี่: (ฉันจะโพสต์ภาพ แต่ฉันยังไม่มีตัวแทน 10 คน) java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView$LayoutManager.onMeasure(android.support.v7.widget.RecyclerView$Recycler, android.support.v7.widget.RecyclerView$State, int, int)' on a null object reference at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:1764) at android.view.View.measure(View.java:17430) at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:727) at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:463) at android.view.View.measure(View.java:17430) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463) at android.widget.FrameLayout.onMeasure(FrameLayout.java:430) at android.view.View.measure(View.java:17430) …

1
เค้าโครงที่กำหนดเองเมธอด onDraw () ไม่ได้รับการเรียก
ฉันกำหนดคลาสไว้ว่า: public class TestMyFrameLayout extends FrameLayout{ Paint mPaint; public TestMyFrameLayout(Context context, AttributeSet attrs) { super(context, attrs); } public TestMyFrameLayout(Context context) { super(context); mPaint = new Paint(); mPaint.setColor(Color.GREEN); } protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawCircle(50f, 50f, 30, mPaint); } } และเรียกมันว่า: TestMyFrameLayout myFrameLayout = new TestMyFrameLayout(this); LayoutParams myFrameLayoutParams = new …

4
Android: วิธีทำให้มุมมองเติบโตขึ้นเพื่อเติมเต็มพื้นที่ว่าง
ดูเหมือนจะตรงไปตรงมา แต่ฉันคิดไม่ออกว่าจะทำอย่างไร ฉันมีเค้าโครงแนวนอนพร้อมด้วย EditText และ ImageButtons สองปุ่ม ฉันต้องการให้ ImageButtons มีขนาดคงที่และ EditText เพื่อใช้พื้นที่ที่เหลือในเค้าโครง จะสำเร็จได้อย่างไร? <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content"> </EditText> <ImageButton android:src="@drawable/img1" android:layout_width="50dip" android:layout_height="50dip"> </ImageButton> <ImageButton android:src="@drawable/img2" android:layout_width="50dip" android:layout_height="50dip"> </ImageButton> </LinearLayout>

1
getWidth / Height () และ getMeasuredWidth / Height () ใน Android SDK ต่างกันอย่างไร
เอกสาร Android กล่าวว่ามีสองขนาดสำหรับมุมมองที่ขนาดวัดและมิติการวาดภาพ มิติที่วัดได้คือมิติที่คำนวณในการส่งผ่านการวัด ( วิธีการonMeasure ) ในขณะที่ขนาดที่วาดเป็นขนาดจริงบนหน้าจอ โดยเฉพาะเอกสารระบุว่า: ค่าเหล่านี้อาจ แต่ไม่จำเป็นต้องแตกต่างจากความกว้างและความสูงที่วัดได้ คำถามของฉันคืออะไรทำให้มิติการวาดแตกต่างจากมิติที่วัดได้ ถ้าเมธอด onMeasure (int, int)ปฏิบัติตามข้อกำหนดโครงร่าง (กำหนดเป็นพารามิเตอร์widthMeasureSpecและheightMeasureSpec SDK จะตัดสินใจได้อย่างไรว่ามุมมองควรมีขนาดการวาดที่แตกต่างกัน นอกจากนี้ซอร์สโค้ด Androidใช้ความกว้าง / ความสูงที่วัดได้อย่างไรในการคำนวณความกว้าง / ความสูงของรูปวาด ฉันพยายามที่จะดูซอร์สโค้ดดูแต่ฉันไม่สามารถเข้าใจได้ว่าความกว้าง / ความสูงที่วัดได้ถูกใช้เพื่อคำนวณความกว้าง / ความสูงสุดท้ายอย่างไร บางทีมันอาจจะมีบางอย่างเกี่ยวกับ padding แต่ฉันไม่แน่ใจ

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