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

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

11
รับกิจกรรมจากบริบทใน Android
อันนี้ทำให้ฉันนิ่งงัน ฉันต้องการเรียกวิธีกิจกรรมจากภายในคลาสเลย์เอาต์ที่กำหนดเอง ปัญหาของเรื่องนี้คือฉันไม่รู้วิธีเข้าถึงกิจกรรมจากภายในโครงร่าง โปรไฟล์ของ public class ProfileView extends LinearLayout { TextView profileTitleTextView; ImageView profileScreenImageButton; boolean isEmpty; ProfileData data; String name; public ProfileView(Context context, AttributeSet attrs, String name, final ProfileData profileData) { super(context, attrs); ...... ...... } //Heres where things get complicated public void onClick(View v) { //Need to get the …

18
ฉันจะทำให้ WRAP_CONTENT ทำงานบน RecyclerView ได้อย่างไร
ฉันมีDialogFragmentที่มีRecyclerView(รายการการ์ด) ภายในนี้RecyclerViewมีหนึ่งหรือมากกว่าCardViewsนั้นที่สามารถมีความสูงใด ๆ ฉันต้องการให้DialogFragmentความสูงที่ถูกต้องตามCardViewsที่มีอยู่ภายใน ปกตินี้จะง่ายผมจะตั้งwrap_contentบนRecyclerViewเช่นนี้ <android.support.v7.widget.RecyclerView ... xmlns:tools="http://schemas.android.com/tools" android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:clickable="true" android:scrollbars="vertical" > </android.support.v7.widget.RecyclerView> เพราะฉันใช้สิ่งRecyclerViewนี้ไม่ทำงานดู: https://issuetracker.google.com/issues/37001674 และ ความสูงของมุมมอง Recycler ที่ซ้อนกันไม่ได้ห่อเนื้อหา ในหน้าเหล่านี้ทั้งสองคนแนะนำให้ขยายLinearLayoutManagerและแทนที่onMeasure() ฉันแรกใช้LayoutManagerที่มีคนให้ในลิงค์แรก: public static class WrappingLayoutManager extends LinearLayoutManager { public WrappingLayoutManager(Context context) { super(context); } private int[] mMeasuredDimension = new int[2]; @Override public void onMeasure(RecyclerView.Recycler recycler, RecyclerView.State state, int …

5
การเว้นระยะห่างระหว่างมุมมองอย่างเท่าเทียมกันโดยใช้ ConstraintLayout
การใช้งานทั่วไปLinearLayoutคือการเว้นวรรค (น้ำหนัก) มุมมองให้เท่า ๆ กันตัวอย่างเช่น คุณใช้มุมมองที่เว้นระยะเท่า ๆ กันเช่นนี้โดยใช้มุมมองใหม่ได้ConstraintLayoutอย่างไร ConstraintLayoutการเชื่อมโยงสำหรับการอ้างอิง: โพสต์บล็อก , I / O วิดีโอเซสชั่น

8
กำหนดตำแหน่งที่แน่นอนของมุมมอง
เป็นไปได้ไหมที่จะกำหนดตำแหน่งที่แน่นอนของมุมมองใน Android? (ฉันรู้ว่ามีAbsoluteLayoutแต่มันเลิก ... ) ตัวอย่างเช่นถ้าฉันมีหน้าจอ 240x320px ฉันจะเพิ่มอันImageViewที่ 20x20px ได้อย่างไรว่าจุดศูนย์กลางอยู่ที่ตำแหน่ง (100,100)

5
LinearLayout, RelativeLayout และ AbsoluteLayout ต่างกันอย่างไร
ฉันสับสนเกี่ยวกับความแตกต่างระหว่าง LinearLayout, RelativeLayout และ AbsoluteLayout ใครช่วยกรุณาบอกความแตกต่างที่แน่นอนระหว่างพวกเขา

2
Gridview พร้อมสองคอลัมน์และปรับขนาดภาพอัตโนมัติ
ฉันพยายามสร้างกริดวิวด้วยสองคอลัมน์ ฉันหมายถึงสองภาพต่อแถวเรียงกันเหมือนภาพนี้ แต่ภาพของฉันมีช่องว่างระหว่างกันเนื่องจากความจริงที่ว่ามันมีขนาดไม่เท่ากัน นี่คือสิ่งที่ฉันได้รับ ในขณะที่คุณสามารถเห็นภาพแรกซ่อนตำนานซึ่งแสดงชื่อผู้ติดต่อและหมายเลขโทรศัพท์ และรูปภาพอื่นไม่ยืดออกอย่างถูกต้อง นี่คือไฟล์GridView xml ของฉัน ขณะที่คุณสามารถดูcolumnWidthการตั้งค่าเพื่อ200dp ฉันต้องการให้เป็นอัตโนมัติดังนั้นรูปภาพจะปรับขนาดอัตโนมัติสำหรับขนาดหน้าจอแต่ละขนาด <?xml version="1.0" encoding="utf-8"?> <GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gridViewContacts" android:layout_width="fill_parent" android:layout_height="fill_parent" android:numColumns="2" android:columnWidth="200dp" android:stretchMode="columnWidth" android:gravity="center" /> และนี่คือไฟล์ item xml ซึ่งแสดงถึงแต่ละไอเท็มเอง <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/imageViewContactIcon" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="fitXY" /> <LinearLayout android:id="@+id/linearlayoutContactName" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:paddingLeft="5dp" android:paddingTop="5dp" android:paddingBottom="5dp" …

6
แอตทริบิวต์ที่กำหนดเองใน styles.xml
ฉันสร้างวิดเจ็ตที่กำหนดเองและฉันประกาศใน layout.xml ฉันได้เพิ่มคุณสมบัติที่กำหนดเองใน attr.xml ด้วย อย่างไรก็ตามเมื่อพยายามที่จะประกาศคุณลักษณะเหล่านี้ในสไตล์ใน styles.xml มันให้ฉันNo resource found that matches the given name: attr 'custom:attribute'. ฉันต้องใส่xmlns:custom="http://schemas.android.com/apk/res/com.my.package"ในแท็กทั้งหมดใน styles.xml รวมทั้ง<?xml>, <resources>และ<style>แต่ก็ยังทำให้ผมมีข้อผิดพลาดเดียวกันว่ามันไม่สามารถหา namespace XML แบบกำหนดเองของฉัน อย่างไรก็ตามฉันสามารถใช้เนมสเปซของฉันเพื่อกำหนดแอตทริบิวต์ให้กับมุมมองใน layout.xml ของฉันด้วยตนเองได้ดังนั้นจึงไม่มีอะไรผิดกับเนมสเปซ ปัญหาของฉันอยู่ที่การทำให้ styles.xml รับรู้ถึง attr.xml ของฉัน

25
Android วิธีปรับเลย์เอาต์ในโหมดเต็มหน้าจอเมื่อมองเห็นซอฟต์คีย์บอร์ด
ฉันค้นคว้ามากเพื่อปรับเลย์เอาต์เมื่อมีการใช้งานซอฟต์คีย์บอร์ดและฉันใช้งานได้สำเร็จ แต่ปัญหาเกิดขึ้นเมื่อฉันใช้android:theme="@android:style/Theme.NoTitleBar.Fullscreen"สิ่งนี้ในแท็กกิจกรรมของฉันในไฟล์รายการ สำหรับเรื่องนี้ฉันได้ใช้android:windowSoftInputMode="adjustPan|adjustResize|stateHidden"กับตัวเลือกที่แตกต่างกัน แต่ไม่มีโชค หลังจากนั้นฉันดำเนินการFullScreenโปรแกรมและพยายามที่รูปแบบต่าง ๆ เพื่อให้การทำงานมีFullScreenแต่ทั้งหมดในไร้สาระ ฉันอ้างลิงค์เหล่านี้และดูโพสต์มากมายที่เกี่ยวข้องกับปัญหานี้: http://android-developers.blogspot.com/2009/04/updating-applications-for-on-screen.html http://davidwparker.com/2011/08/30/android-how-to-float-a-row-above-keyboard/ นี่คือรหัส xml: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout android:id="@+id/masterContainerView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android" android:background="#ffffff"> <ScrollView android:id="@+id/parentScrollView" android:layout_width="fill_parent" android:layout_height="wrap_content"> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <TextView android:id="@+id/setup_txt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Setup - Step 1 of 3" android:textColor="@color/top_header_txt_color" android:textSize="20dp" android:padding="8dp" android:gravity="center_horizontal" /> <TextView android:id="@+id/txt_header" android:layout_width="fill_parent" android:layout_height="40dp" android:text="AutoReply:" …

4
ทำไมไม่ใช้ Android เสมอ: configChanges =“ keyboardHidden | ปฐมนิเทศ”?
ฉันสงสัยว่าทำไมไม่ใช้ android:configChanges="keyboardHidden|orientation"ในทุก ๆ กิจกรรม (เกือบทุกอัน)? สินค้า: ไม่จำเป็นต้องกังวลเกี่ยวกับกิจกรรมของคุณที่ถูกหมุน มันเร็วกว่า ไม่ค่อยดี: จำเป็นต้องเปลี่ยนเค้าโครงของคุณหากขึ้นอยู่กับขนาดหน้าจอ (เช่นเค้าโครงที่มีสองคอลัมน์หรือมากกว่านั้น) แย่: ไม่มีวิธีที่ยืดหยุ่นในการมีรูปแบบที่แตกต่างกันในทิศทางที่แตกต่างกัน ไม่ค่อยดีเมื่อใช้แฟรกเมนต์ แต่ถ้าเราไม่ใช้เลย์เอาต์ที่แตกต่างกันทำไมล่ะ?


15
ความสูงของมุมมอง Recycler ที่ซ้อนกันไม่ได้ห่อเนื้อหา
ฉันมีแอปพลิเคชั่นที่จัดการคอลเล็กชันหนังสือ (เช่นเพลย์ลิสต์) ฉันต้องการแสดงรายการคอลเลกชันที่มีแนวตั้ง RecyclerView และในแต่ละแถวรายการของหนังสือในแนวนอน RecyclerView เมื่อฉันตั้งค่า layout_height ของ RecyclerView แนวนอนด้านในเป็น 300dp จะแสดงอย่างถูกต้อง แต่เมื่อฉันตั้งค่าเป็น wrap_content จะไม่แสดงอะไรเลย ฉันต้องใช้ wrap_content เพราะฉันต้องการที่จะสามารถเปลี่ยนการจัดการรูปแบบโดยทางโปรแกรมเพื่อสลับระหว่างการแสดงผลในแนวตั้งและแนวนอน คุณรู้หรือไม่ว่าฉันทำอะไรผิด เลย์เอาต์ของฉัน: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white"> <com.twibit.ui.view.CustomSwipeToRefreshLayout android:id="@+id/swipe_container" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v7.widget.RecyclerView android:id="@+id/shelf_collection_listview" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingTop="10dp"/> </LinearLayout> </com.twibit.ui.view.CustomSwipeToRefreshLayout> </LinearLayout> เค้าโครงองค์ประกอบคอลเลกชัน: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" …

4
เค้าโครง Android แทนที่มุมมองด้วยมุมมองอื่นในเวลาทำงาน
ฉันมีxmlไฟล์ -layout หลักสอง textviews A / B และมุมมองที่ C. ฉันมีสองอื่น ๆxmlไฟล์ -layout และoption1 option2มันเป็นไปได้ที่จะโหลดอย่างใดอย่างหนึ่งoption1หรือoption2ในเวลาทำงานผ่าน Java เป็น C? ถ้าเป็นเช่นนั้นฉันต้องใช้ฟังก์ชั่นอะไร?

11
ปรับขนาดไอคอนของปุ่มการกระทำลอยตัว (fab)
ใหม่ปุ่มการกระทำลอยควรจะ56dp x 56dpและไอคอนที่อยู่ภายในก็ควรจะ24dp x 24dp ดังนั้นช่องว่างระหว่างไอคอนและปุ่มที่ควรจะ16dp <ImageButton android:id="@+id/fab_add" android:layout_width="56dp" android:layout_height="56dp" android:layout_gravity="bottom|right" android:layout_marginBottom="16dp" android:layout_marginRight="16dp" android:background="@drawable/ripple_oval" android:elevation="8dp" android:src="@drawable/ic_add_black_48dp" /> ripple_oval.xml <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="?android:colorControlHighlight"> <item> <shape android:shape="oval"> <solid android:color="?android:colorAccent" /> </shape> </item> </ripple> และนี่คือผลลัพธ์ที่ฉันได้รับ: ฉันใช้ไอคอนจาก\ material-design-icons-1.0.0 \ content \ drawable-hdpi \ ic_add_black_48dp.png https://github.com/google/material-design-icons/releases /tag/1.0.1 วิธีที่จะทำให้ขนาดของไอคอนภายในปุ่มจะตรงตามที่อธิบายไว้ในหลักเกณฑ์? http://www.google.com/design/spec/components/buttons.html#buttons-floating-action-button

19
เหวี่ยงด้วย RecyclerView + AppBarLayout
ฉันกำลังใช้ CoordinatorLayout ใหม่กับ AppBarLayout และ CollapsingToolbarLayout ด้านล่าง AppBarLayout ฉันมี RecyclerView พร้อมรายการเนื้อหา ฉันได้ตรวจสอบแล้วว่าการเลื่อน Fling ทำงานบน RecyclerView เมื่อฉันเลื่อนรายการขึ้นและลง อย่างไรก็ตามฉันอยากให้ AppBarLayout เลื่อนไปมาอย่างราบรื่นในระหว่างการขยาย เมื่อเลื่อนขึ้นเพื่อขยาย CollaspingToolbarLayout การเลื่อนจะหยุดทันทีเมื่อยกนิ้วของคุณออกจากหน้าจอ หากคุณเลื่อนขึ้นอย่างรวดเร็วบางครั้ง CollapsingToolbarLayout ก็จะยุบอีกครั้งเช่นกัน พฤติกรรมนี้กับ RecyclerView ดูเหมือนว่าจะทำงานแตกต่างจากเมื่อใช้ NestedScrollView มาก ฉันพยายามตั้งค่าคุณสมบัติการเลื่อนที่แตกต่างกันบน recyclerview แต่ฉันไม่สามารถเข้าใจได้ นี่คือวิดีโอที่แสดงปัญหาการเลื่อนบางส่วน https://youtu.be/xMLKoJOsTAM นี่คือตัวอย่างที่แสดงปัญหาของ RecyclerView (CheeseDetailActivity) https://github.com/tylerjroach/cheesesquare นี่คือตัวอย่างดั้งเดิมที่ใช้ NestedScrollView จาก Chris Banes https://github.com/chrisbanes/cheesesquare

13
ขนาดแบบอักษรของ TextView ในแอปพลิเคชัน Android จะเปลี่ยนขนาดตัวอักษรจากการตั้งค่าดั้งเดิม
ฉันต้องการระบุขนาดข้อความของตัวเองในแอปพลิเคชันของฉัน แต่ฉันมีปัญหาในการทำเช่นนี้ เมื่อฉันเปลี่ยนขนาดตัวอักษรในการตั้งค่าอุปกรณ์ขนาดตัวอักษรของแอปพลิเคชันของฉันTextViewก็เปลี่ยนไปเช่นกัน

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