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

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

7
ตั้งค่า android: gravity เป็น TextView จากฝั่ง Java ใน Android ได้อย่างไร
ฉันสามารถใช้android:gravity="bottom|center_horizontal"xml ใน textview เพื่อให้ได้ผลลัพธ์ที่ต้องการ แต่ฉันต้องทำสิ่งนี้โดยทางโปรแกรม TextView ของฉันคือภายในถ้าเรื่องที่ว่าในtablerowrelativelayout ฉันเหนื่อย: LayoutParams layoutParams = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL); labelTV.setLayoutParams(layoutParams); แต่ถ้าฉันเข้าใจถูกต้องมันจะนำไปใช้กับมุมมองtablerowไม่ใช่ข้อความใช่หรือไม่

21
GridLayout (ไม่ใช่ GridView) วิธียืดเด็กทุกคนอย่างเท่าเทียมกัน
ฉันต้องการตาราง 2x2 ที่มีปุ่มอยู่ข้างใน นี่เป็น ICS เท่านั้นดังนั้นฉันพยายามใช้ GridLayout ใหม่ที่ให้มา นี่คือ XML ของเค้าโครงของฉัน: <?xml version="1.0" encoding="utf-8"?> <GridLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/favorites_grid" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#00ff00" android:rowCount="2" android:columnCount="2"> <Button android:text="Cell 0" android:layout_row="0" android:layout_column="0" android:textSize="14dip" /> <Button android:text="Cell 1" android:layout_row="0" android:layout_column="1" android:textSize="14dip" /> <Button android:text="Cell 2" android:layout_row="1" android:layout_column="0" android:textSize="14dip" /> <Button android:text="Cell 3" android:layout_row="1" android:layout_column="1" android:textSize="14dip" /> …


6
วิธีการจัดองค์ประกอบให้อยู่กึ่งกลางใน ConstraintLayout
ฉันใช้ConstraintLayoutในแอปพลิเคชันของฉันเพื่อจัดทำแอปพลิเคชัน ฉันพยายามสร้างหน้าจอที่หนึ่งEditTextและButtonควรจะอยู่ในศูนย์และButtonควรอยู่ด้านล่างEditTextด้วย marginTop เพียง 16dp นี่คือเค้าโครงและภาพหน้าจอของฉันว่ามันเป็นอย่างไรในตอนนี้ activity_authenticate_content.xml <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="16dp" android:paddingRight="16dp" tools:context="com.icici.iciciappathon.login.AuthenticationActivity"> <android.support.design.widget.TextInputLayout android:id="@+id/client_id_input_layout" android:layout_width="0dp" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent"> <android.support.design.widget.TextInputEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/login_client_id" android:inputType="textEmailAddress" /> </android.support.design.widget.TextInputLayout> <android.support.v7.widget.AppCompatButton android:id="@+id/authenticate" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:text="@string/login_auth" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="@id/client_id_input_layout" app:layout_constraintRight_toRightOf="@id/client_id_input_layout" app:layout_constraintTop_toTopOf="@id/client_id_input_layout" /> </android.support.constraint.ConstraintLayout>

8
คุณจะบอกได้อย่างไรเมื่อมีการวาดโครงร่าง?
ฉันมีมุมมองที่กำหนดเองที่วาดบิตแมปที่เลื่อนได้ไปที่หน้าจอ เพื่อเริ่มต้นฉันต้องผ่านขนาดเป็นพิกเซลของวัตถุเค้าโครงหลัก แต่ในระหว่างฟังก์ชั่น onCreate และ onResume ยังไม่มีการวาดเค้าโครงและดังนั้น layout.getMeasuredHeight () จึงส่งกลับ 0 ฉันได้เพิ่มตัวจัดการเพื่อรอหนึ่งวินาทีแล้วจึงวัด มันใช้งานได้ แต่มันเลอะเทอะและฉันก็ไม่รู้เลยว่าฉันจะตัดเวลาได้เท่าไหร่ก่อนที่ฉันจะจบลงก่อนที่โครงร่างจะถูกวาด สิ่งที่ฉันต้องการรู้คือฉันจะตรวจจับได้อย่างไรเมื่อมีการวาดเลย์เอาต์? มีเหตุการณ์หรือการติดต่อกลับหรือไม่

12
พารามิเตอร์ LayoutInflater attachToRoot หมายถึงอะไร
LayoutInflater.inflateเอกสารไม่ตรงชัดเจนกับผมเกี่ยวกับวัตถุประสงค์ของattachToRootพารามิเตอร์ attachToRoot : ว่าควรแนบลำดับชั้นที่สูงเกินจริงไปที่พารามิเตอร์รูทหรือไม่? หากเป็นเท็จรูตจะใช้เพื่อสร้างคลาสย่อยที่ถูกต้องของ LayoutParams สำหรับมุมมองรูทใน XML มีคนช่วยอธิบายรายละเอียดเพิ่มเติมโดยเฉพาะสิ่งที่รูตคือและอาจแสดงตัวอย่างของการเปลี่ยนแปลงพฤติกรรมระหว่างtrueและfalseค่า?

9
ellipsize หมายถึงอะไรใน Android
ฉันได้เพิ่มสิ่งEditTextที่เลย์เอาต์ของฉันและเพิ่มคำใบ้และทำให้มันอยู่กึ่งกลางในแนวนอน เมื่อเรียกใช้แอปพลิเคชันคำใบ้นั้นจะมองไม่เห็น ฉันพบว่าฉันควรสร้างellipsizeคุณค่าของการTextViewเป็นstart: <EditText android:id="@+id/number1EditText" android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="start" android:ems="10" android:gravity="center_horizontal" android:hint="@string/hint1" /> ในเอกสาร Android ผมอ่าน: หากตั้งค่าจะทำให้คำที่ยาวกว่ามุมมองกว้างที่จะเป็นรูป ไข่แทนที่จะแตกกลาง ปัญหาคือว่าellipsizeจะไม่พบในพจนานุกรม ทุกคนสามารถอธิบายให้ฉันได้ประโยชน์อะไรที่เราจะได้รับจากellipsizeคุณสมบัติ? และสิ่งที่เป็นความแตกต่างระหว่างstart, end, middle?

9
การตั้งค่าสีพื้นหลังขององค์ประกอบเค้าโครง Android
ฉันพยายามที่จะค่อนข้างโคลนออกแบบของกิจกรรมนั้นจากชุดของภาพนิ่งในการออกแบบ UI Android อย่างไรก็ตามฉันมีปัญหากับงานง่าย ๆ ผมได้สร้างรูปแบบตามที่แสดงในภาพและส่วนหัวเป็นในTextView RelativeLayoutตอนนี้ฉันต้องการเปลี่ยนสีพื้นหลังของRelativeLayoutแต่ฉันไม่สามารถหาวิธีได้ ฉันรู้ว่าฉันสามารถตั้งค่าandroid:backgroundคุณสมบัติในRelativeLayoutแท็กในไฟล์ XML แต่ฉันจะตั้งค่ามันเป็นอย่างไร ฉันต้องการกำหนดสีใหม่ที่ฉันสามารถใช้ได้ในหลาย ๆ ที่ มันเป็นdrawableหรือstring? นอกจากนี้ฉันคาดหวังว่าจะมีวิธีง่ายๆในการออกแบบ Eclipse Android UI ภายในที่ฉันต้องหายไป? ฉันผิดหวังเล็กน้อยในขณะนี้เนื่องจากควรเป็นกิจกรรมที่ดำเนินการโดยคลิกไม่กี่ครั้งสูงสุด ดังนั้นความช่วยเหลือใด ๆ ที่ชื่นชมมาก :)

4
ฉันจะใช้วิธีการดึงสารประกอบแทน LinearLayout ที่มี ImageView และ TextView ได้อย่างไร
เรียกใช้เครื่องมือผ้าสำลีใหม่เทียบกับรหัสของฉัน มันมาพร้อมกับคำแนะนำที่ดีมากมาย แต่อันนี้ฉันไม่เข้าใจ แท็กนี้และลูก ๆ ของมันสามารถถูกแทนที่ด้วยแท็กเดียว ปัญหา: ตรวจสอบว่าสามารถเปลี่ยนโหนดปัจจุบันโดย TextView โดยใช้ drawable ผสมได้หรือไม่ LinearLayout ซึ่งมี ImageView และ TextView สามารถจัดการได้อย่างมีประสิทธิภาพมากขึ้นในฐานะที่เป็น drawable ผสม และนี่คือเค้าโครงของฉัน <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_centerInParent="true"> <ImageView android:id="@+id/upImage" android:layout_width="20dp" android:layout_height="20dp" android:layout_gravity="center_vertical" android:scaleType="centerInside" android:src="@drawable/up_count_big"> </ImageView> <TextView android:id="@+id/LikeCount" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="2dp" android:layout_marginBottom="1dp" android:textColor="@color/gray" android:textSize="16sp" android:layout_gravity="center_vertical"> </TextView> </LinearLayout> ใครสามารถให้ตัวอย่างที่เป็นรูปธรรมเกี่ยวกับวิธีการสร้างสารประกอบได้ในกรณีนี้

2
Android: วิธีการวาดเส้นขอบให้เป็น LinearLayout
ฉันมีสามไฟล์ XML, ฟังก์ชั่นการวาดและกิจกรรมหลัก ฉันมีบางอย่างLinearLayoutในไฟล์ XML ของฉัน <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:background="#ef3" android:id="@+id/img01"/> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:background="#E8A2B4" android:id="@+id/img02"/> </LinearLayout> นี่คือฟังก์ชั่นการวาด: public class getBorder extends TextView { public getBorder(Context context) { super(context); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint paint = new Paint(); paint.setColor(android.graphics.Color.RED); …

6
วิธีใช้ ViewPager ที่มี Fragments / Layouts ต่างกัน
เมื่อฉันเริ่มกิจกรรมที่ใช้ viewpager ผู้ดูจะสร้างแฟรกเมนต์ต่างๆ ฉันต้องการใช้เลย์เอาต์ที่แตกต่างกันสำหรับแต่ละแฟรกเมนต์ แต่ปัญหาคือ viewpager แสดงเพียงสองเลย์เอาท์ที่สูงสุด (เลย์เอาต์ที่สองของแฟรกเมนต์ที่เหลือทั้งหมดหลังจาก 1) นี่คือรหัสสำหรับSwipeActivityซึ่งใช้ viewpager: public class SwipeActivity extends FragmentActivity { MyPageAdapter pageAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_swipe); pageAdapter = new MyPageAdapter(getSupportFragmentManager()); ViewPager pager=(ViewPager)findViewById(R.id.pager); pager.setAdapter(pageAdapter); ActionBar bar = getActionBar(); bar.setDisplayHomeAsUpEnabled(true); } /** * Custom Page adapter */ private class MyPageAdapter extends …

8
Android Paint: .measureText () vs .getTextBounds ()
ฉันกำลังวัดข้อความโดยใช้Paint.getTextBounds()เนื่องจากฉันสนใจที่จะให้ทั้งความสูงและความกว้างของข้อความแสดงผล อย่างไรก็ตามข้อความจริงที่แสดงอยู่เสมอ bit กว้างกว่า.width()ของข้อมูลที่เต็มไปด้วยRectgetTextBounds() ฉันประหลาดใจเมื่อฉันทดสอบ.measureText()และพบว่ามันส่งกลับค่า (สูงกว่า) ที่แตกต่างกัน ฉันลองดูและพบว่าถูกต้อง เหตุใดพวกเขาจึงรายงานความกว้างที่แตกต่างกัน ฉันจะรับความสูงและความกว้างได้อย่างไร ฉันหมายความว่าฉันสามารถใช้.measureText()แต่แล้วฉันจะไม่ทราบว่าผมควรจะไว้วางใจกลับโดย.height()getTextBounds() ตามที่ร้องขอนี่คือรหัสขั้นต่ำในการทำให้เกิดปัญหาอีกครั้ง: final String someText = "Hello. I believe I'm some text!"; Paint p = new Paint(); Rect bounds = new Rect(); for (float f = 10; f < 40; f += 1f) { p.setTextSize(f); p.getTextBounds(someText, 0, someText.length(), bounds); Log.d("Test", …

14
ผลกระทบระลอกคลื่นบน Android Lollipop CardView
ฉันพยายามรับ CardView เพื่อแสดงเอฟเฟกต์ระลอกคลื่นเมื่อสัมผัสโดยการตั้งค่าแอตทริบิวต์ android: backgound ในไฟล์ XML ของกิจกรรมตามที่อธิบายไว้ที่นี่ในหน้านักพัฒนา Android แต่มันไม่ทำงาน ไม่มีภาพเคลื่อนไหวเลย แต่มีการเรียกเมธอดใน onClick ฉันได้ลองสร้างไฟล์ ripple.xml ตามที่แนะนำที่นี่แต่ผลลัพธ์เดียวกัน CardView ตามที่ปรากฏในไฟล์ XML ของกิจกรรม: <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" android:layout_width="155dp" android:layout_height="230dp" android:elevation="4dp" android:translationZ="5dp" android:clickable="true" android:focusable="true" android:focusableInTouchMode="true" android:onClick="showNotices" android:background="?android:attr/selectableItemBackground" android:id="@+id/notices_card" card_view:cardCornerRadius="2dp"> </android.support.v7.widget.CardView> ฉันค่อนข้างใหม่สำหรับการพัฒนาแอนดรอยด์ดังนั้นฉันอาจทำผิดพลาดเล็กน้อย

12
วิธีสร้างเค้าโครงด้วย View เติมเต็มพื้นที่ที่เหลืออยู่?
ฉันกำลังออกแบบ UI แอปพลิเคชันของฉัน ฉันต้องการเลย์เอาต์ที่มีลักษณะดังนี้: (<และ> เป็นปุ่ม) ปัญหาคือฉันไม่ทราบวิธีการตรวจสอบให้แน่ใจว่า TextView จะเติมเต็มพื้นที่ที่เหลือด้วยปุ่มสองปุ่มที่มีขนาดคงที่ ถ้าฉันใช้ fill_parent สำหรับมุมมองข้อความปุ่มที่สอง (>) จะไม่สามารถแสดงได้ ฉันจะสร้างเลย์เอาต์ที่ดูเหมือนภาพได้อย่างไร


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