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

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

12
มุมมองนี้ไม่ถูก จำกัด ในแนวตั้ง เมื่อรันไทม์มันจะข้ามไปทางซ้ายเว้นแต่คุณจะเพิ่มข้อ จำกัด แนวตั้ง
ตัวแก้ไขเค้าโครงใหม่ใน Android Studio 2.2 ยังคงแสดงข้อผิดพลาดนี้ในมุมมองเช่น EditText และ Buttons กรุณาช่วยด้วยนอกจากนี้ลิงก์ใด ๆ ที่ช่วยในการเริ่มต้นใช้งานด้วยเลย์เอาต์ข้อ จำกัด ใหม่จะได้รับการชื่นชม รหัส: <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout android:id="@+id/activity_main" 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" tools:context="com.set.email.MainActivity" tools:layout_editor_absoluteX="0dp" tools:layout_editor_absoluteY="81dp"> <TextView android:text="To:" android:layout_width="wrap_content" android:layout_height="wrap_content" tools:layout_editor_absoluteX="7dp" tools:layout_editor_absoluteY="4dp" android:id="@+id/textTo"/> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="textEmailAddress" android:ems="10" tools:layout_editor_absoluteX="0dp" tools:layout_editor_absoluteY="24dp" android:id="@+id/editTo" android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium"/> <EditText android:layout_width="384dp" android:layout_height="42dp" android:inputType="textPersonName" android:ems="10" tools:layout_editor_absoluteX="0dp" tools:layout_editor_absoluteY="94dp" …

7
จะป้องกันไม่ให้ scrollview เลื่อนไปที่ webview หลังจากโหลดข้อมูลได้อย่างไร?
ดังนั้นฉันจึงมีปัญหาที่น่าสนใจ แม้ว่าฉันจะไม่ได้เลื่อนมุมมองด้วยตนเองหรือโดยใช้โปรแกรม แต่ WebView ของฉันจะถูกเลื่อนไปโดยอัตโนมัติหลังจากที่ข้อมูลภายในโหลดขึ้น ฉันมีส่วนใน viewpager เมื่อฉันโหลดเพจเจอร์ครั้งแรกมันทำงานตามที่คาดไว้และทุกอย่างจะปรากฏขึ้น แต่เมื่อฉัน "พลิกหน้า" ข้อมูลจะโหลดขึ้นและ WebView จะปรากฏขึ้นที่ด้านบนของหน้าโดยซ่อนมุมมองไว้ด้านบนซึ่งเป็นสิ่งที่ไม่พึงปรารถนา ไม่มีใครรู้วิธีป้องกันไม่ให้เกิดขึ้น เค้าโครงของฉันมีลักษณะดังนี้: <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/background" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/article_title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:layout_marginBottom="2dp" android:text="Some Title" android:textAppearance="?android:attr/textAppearanceLarge" android:textColor="@color/article_title" android:textStyle="bold" /> <LinearLayout android:id="@+id/LL_Seperator" android:layout_width="fill_parent" android:layout_height="1dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="5dp" …

8
ฉันจะแก้ไขสีระลอกเมื่อใช้? attr / selectableItemBackground เป็นพื้นหลังได้อย่างไร?
ฉันเคยเห็นคำถาม SO และพวกเขาให้วิธีการที่เป็นไปได้เพื่อบรรลุสิ่งที่ฉันต้องการ ตัวอย่างเช่น: ใช้colorControlHighlightแอตทริบิวต์ใน styles.xml นี่คือสไตล์ของฉัน -v21.xml: <style name="SelectableItemBackground"> <item name="android:colorControlHighlight">#5677FC</item> <item name="android:background">?attr/selectableItemBackground</item> </style> และวิดเจ็ตของฉัน: <TextView android:id="@+id/tv_take_photo_as_bt" android:layout_width="280dp" android:layout_height="48dp" android:text="@string/act_take_photo" style="@style/SelectableItemBackground"/> และไม่ได้ผล ฉันยังพยายามเพิ่มparent="Theme.AppCompatในสไตล์ "SelectableItemBackground" หรือเปลี่ยนเป็นcolorControlHighlight(no android: prefix)"หรือเปลี่ยน?android:attr/selectableItemBackgroundเป็นก็ไม่มีประโยชน์ ใช้backgroundTintแอตทริบิวต์ในเค้าโครง ดังนั้นผมจึงเพิ่มของฉันandroid:backgroundTint="#5677FC" TextViewยังไม่มีประโยชน์. จากนั้นผมก็พยายามที่จะเปลี่ยนandroid:backgroundTintModeไปsrc_inและsrc_atopและพวกเขาไม่เคยสร้างความแตกต่าง ดังนั้นฉันจะเปลี่ยนสีของระลอกคลื่นได้อย่างไรเมื่อใช้?attr/selectableItemBackgroundเป็นพื้นหลัง ฉันเน้นเฉพาะ Lollipop ขึ้นไปเท่านั้น ขอบคุณล่วงหน้า!


1
ใช้เนมสเปซของแอพอย่างมีสไตล์
ฉันจะยกตัวอย่างเพื่อแสดงให้เห็นถึงจุดที่ยิ่งใหญ่กว่า ลองนึกภาพแอปของฉันมี FloatingActionButtons จำนวนหนึ่ง ดังนั้นฉันต้องการสร้างสไตล์เดียวและใช้ซ้ำ ดังนั้นฉันจึงทำสิ่งต่อไปนี้: <style name="FabStyle” parent ="Widget.Design.FloatingActionButton"> <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">wrap_content</item> <item name="android:layout_margin">16dp</item> <item name="app:backgroundTint">@color/accent</item> <item name="app:layout_anchorGravity">end|bottom</item> </style> ปัญหาที่ฉันพบคือรหัสไม่ได้รวบรวมเนื่องจากมีการบ่นเกี่ยวกับ Error:(40, 5) No resource found that matches the given name: attr 'app:backgroundTint'. ฉันพยายามนำเนมสเปซเข้ามาผ่านresourcesแท็ก แต่ใช้งานไม่ได้ <resources xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android" > มีความคิดอย่างไรที่ฉันจะทำให้สิ่งนี้ได้ผล

13
Android วาดเส้นแนวนอนระหว่างมุมมอง
ฉันมีเค้าโครงของฉันดังนี้: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" style="@style/behindMenuItemLabel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Twitter Feeds" android:textStyle="bold" /> <ListView android:id="@+id/list" android:layout_width="350dp" android:layout_height="50dp" /> <TextView android:id="@+id/textView1" style="@style/behindMenuItemLabel1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="1dp" android:text="FaceBook Feeds" /> <ListView android:id="@+id/list1" android:layout_width="350dp" android:layout_height="50dp" /> </LinearLayout> ความต้องการของฉันคือการวาดเส้นแนวนอนระหว่างTextViewและListView ใครสามารถช่วย?

6
ลบแทร็กแถบเลื่อนออกจาก ScrollView ใน Android
แอป Android ของฉันมี WebView หลัก (HTML โหลดจากทรัพยากรในเครื่อง) ซึ่งฉันต้องการใช้ความกว้างทั้งหมดของหน้าจอและสามารถเลื่อน (แนวตั้ง) ได้ ดังนั้นฉันจึงรวม WebView ไว้ใน ScrollView ใน XML เค้าโครงของฉัน แต่ไม่ว่าฉันจะทำอย่างไรฉันก็ไม่สามารถลบแทร็กแถบเลื่อนออกจากด้านขวาของมุมมองการเลื่อนได้ ที่แย่ไปกว่านั้นคือฉันไม่สามารถเปลี่ยนสีพื้นหลังของแทร็กแถบเลื่อนได้ แทร็กใช้เวลาประมาณ 10dp หรือมากกว่านั้นซึ่งสร้างปัญหาให้กับ HTML ใน WebView ฉันต้องการให้แถบเลื่อนปรากฏที่ด้านบนของมุมมองเว็บ (สไตล์ iPhone ถ้าคุณรู้ว่าฉันหมายถึงอะไร) ตอนนี้คุณสามารถพูดได้ว่า "ทำไมคุณไม่เปลี่ยน HTML ของคุณให้บางลง 10px" ซึ่งเป็นวิธีแก้ปัญหาสำรองของฉัน แต่ฉันไม่จำเป็นต้องทำ นี่คือตัวอย่าง XML ของเค้าโครงที่เกี่ยวข้องคุณจะเห็นว่าฉันได้ลองใช้คุณลักษณะ android: etc ทุกตัวที่ฉันพบ: <ScrollView android:id="@+id/deal_web_view_holder" android:layout_below="@id/clock_bar_holder" android:layout_width="fill_parent" android:layout_height="fill_parent" android:fillViewport="false" android:fadingEdge="none" android:background="#02a7e9" …

9
การกู้คืนสถานะของ TextView หลังจากการหมุนหน้าจอ?
ในแอปของฉันฉันมีTextViewและEditText. ทั้งสองมีข้อมูลอยู่ในนั้น เมื่อการวางแนวหน้าจอเปลี่ยนข้อมูลในส่วนที่EditTextเหลือ แต่TextViewข้อมูลจะถูกล้าง มีใครช่วยหาวิธีเก็บรักษาข้อมูลTextViewด้วยได้ไหม

4
เป็นไปได้ไหมที่จะหมุน drawable ในคำอธิบาย xml
ฉันกำลังสร้างแอปโดยมีทรัพยากรที่สามารถใช้ซ้ำได้ (เนื่องจากปุ่มต่างๆมักจะเหมือนกัน แต่จะเป็นมิเรอร์หรือหมุน) ฉันต้องการใช้ทรัพยากรเดียวกันดังนั้นฉันจึงไม่ต้องเพิ่มทรัพยากรอีก 3 รายการที่เหมือนกับต้นฉบับทุกประการ แต่ถูกหมุนเวียน แต่ฉันก็ไม่ต้องการผสมโค้ดกับสิ่งที่สามารถประกาศใน XML หรือทำการแปลงด้วยเมทริกซ์ที่จะเสียเวลาในการประมวลผล ฉันมีปุ่มสถานะสองปุ่มที่ประกาศใน XML <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/and_card_details_button_down_left_onclick" /> <!-- pressed --> <item android:drawable="@drawable/and_card_details_button_down_left" /> <!-- default --> </selector> และฉันต้องการใช้ที่ดึงได้ซ้ำเพราะมันจะเหมือนเดิม แต่หมุน90ºและ45ºและฉันกำหนดให้ปุ่มเป็นแบบดึงได้ <Button android:id="@+id/Details_Buttons_Top_Left_Button" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/details_menu_large_button" /> ฉันรู้ว่าฉันสามารถหมุนได้ด้วย a RotateDrawableหรือด้วยMatrixแต่อย่างที่ฉันอธิบายไปแล้วว่าฉันไม่ชอบวิธีนั้น เป็นไปได้หรือไม่ที่จะบรรลุสิ่งนั้นโดยตรงบน XML หรือสิ่งใดที่คุณคิดว่าจะเป็นวิธีที่ดีที่สุด? ใส่ทรัพยากรทั้งหมด แต่หมุนแล้วหมุนในรหัส? - แก้ไข - …

10
ไม่สามารถทำให้ DialogFragment แบบกำหนดเองโปร่งใสเหนือ Fragment ได้
ฉันต้องการสร้างไดอะล็อกบนส่วนย่อย (ที่ใช้ทั้งหน้าจอ) กล่องโต้ตอบจะต้องเป็นกล่องโต้ตอบแบบลอยที่จะวางตำแหน่งเหนือส่วนโดยที่ส่วนที่มืดออกมานอกส่วนนั้น .. สำหรับ Dialog ที่กำหนดเองฉันมี LinearLayout ที่มีขอบโค้งไม่ว่าฉันจะทำอะไรกล่องโต้ตอบจะมีขอบสีดำทุกด้าน (เล็กมาก) ฉันพยายามทุกอย่างเพื่อให้โปร่งใสและหายไป (เพื่อให้กล่องโต้ตอบทั้งหมดเป็นเพียงเค้าโครงเชิงเส้น - กล่องโค้ง) สำหรับ DialogFragment นี่คือสิ่งที่ฉันมีสำหรับ onCreateView @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ LinearLayout layout =(LinearLayout)inflater.inflate(R.layout.custom_dialog, null); LinearLayout item = (LinearLayout)layout.findViewById(R.id.display_item); populateItemData(item, inflater); return layout; } custom_dialog เป็นเพียง LinearLayout ที่มี android: backgroung ตั้งค่าเป็น # 000000 นี่คือสไตล์ของฉันสำหรับ …

13
Appcompatv7 - v21 ลิ้นชักการนำทางไม่แสดงไอคอนแฮมเบอร์เกอร์
ฉันใช้ลิ้นชักการนำทางสไตล์อมยิ้มกับไลบรารีสนับสนุน appcompat ล่าสุด แต่ปัญหาคือไอคอนแฮมเบอร์เกอร์ไม่ปรากฏขึ้น แสดงเฉพาะไอคอนย้อนกลับ นี่คือรหัสกิจกรรมของฉัน import android.os.Bundle; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.widget.Toolbar; import android.view.View; public class Home extends ActionBarActivity { private DrawerLayout mDrawerLayout; private ActionBarDrawerToggle mDrawerToggle; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home); initViews(); } private void initViews(){ Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); mDrawerLayout = …

11
จะลบโฟกัสโดยไม่ตั้งโฟกัสไปที่ตัวควบคุมอื่นได้อย่างไร?
ฉันชอบให้ UI ของฉันใช้งานง่าย แต่ละหน้าจอควรจะนำทางผู้ใช้ไปยังขั้นตอนต่อไปในแอพอย่างเป็นธรรมชาติและสงบเสงี่ยม นอกจากนั้นฉันพยายามทำให้สิ่งต่างๆสับสนและสับสนให้มากที่สุด ผมล้อเล่น :-) ฉันมีสามTableRowวินาทีแต่ละตัวมีตัวควบคุม EditText แบบอ่านอย่างเดียวและไม่โฟกัสแล้วกดปุ่มทางขวา แต่ละปุ่มเริ่มกิจกรรมเดียวกัน แต่มีอาร์กิวเมนต์ต่างกัน ผู้ใช้ทำการเลือกที่นั่นและกิจกรรมย่อยจะเสร็จสิ้นโดยเติมข้อมูลที่เหมาะสมEditTextกับการเลือกของผู้ใช้ เป็นกลไกค่าเรียงซ้อนแบบคลาสสิก การเลือกแต่ละรายการจะ จำกัด ตัวเลือกที่มีอยู่สำหรับการเลือกถัดไป ฯลฯ ดังนั้นฉันจึงปิดการใช้งานการควบคุมทั้งสองในแต่ละแถวถัดไปจนกว่า EditText ในแถวปัจจุบันจะมีค่า ฉันต้องทำอย่างใดอย่างหนึ่งในสองสิ่งตามลำดับความต้องการนี้: เมื่อคลิกปุ่มให้ลบโฟกัสทันทีโดยไม่ต้องตั้งโฟกัสไปที่ปุ่มอื่น ตั้งโฟกัสไปที่ปุ่มแรกเมื่อเริ่มกิจกรรม ปัญหาปรากฏขึ้นหลังจากส่งคืนกิจกรรมย่อย ปุ่มที่คลิกจะยังคงโฟกัส Re: # 1 ด้านบน - ดูเหมือนจะไม่มีremoveFocus()วิธีการหรือสิ่งที่คล้ายกัน Re: # 2 ข้างต้น - ฉันสามารถใช้requestFocus()เพื่อมุ่งเน้นชุดปุ่มบนแถวถัดไปและผลงานว่าหลังจากที่ผลตอบแทนย่อยกิจกรรม onCreate()แต่ด้วยเหตุผลบางอย่างมันไม่ได้ทำงานในกิจกรรมของผู้ปกครอง ฉันต้องการความสอดคล้องของ UI ในทิศทางใดทิศทางหนึ่ง - ไม่มีปุ่มใดที่มีโฟกัสหลังจากกิจกรรมย่อยเสร็จสิ้นหรือแต่ละปุ่มได้รับโฟกัสขึ้นอยู่กับตำแหน่งของมันในโฟลว์ลอจิกรวมถึงปุ่มที่ใช้งานแรก (และเท่านั้น) ก่อนการเลือก

11
วิธีใช้ Android: พื้นหลังที่ไม่ยืด?
ฉันพบกระทู้ที่ยอดเยี่ยมนี้อธิบายถึงวิธี "กินเค้กและมีมันด้วย" เช่นใช้รูปภาพButtonแทนImageButton(ซึ่งไม่อนุญาตให้SetText()ปรับขนาด ฯลฯ ) สิ่งนี้ทำได้โดยใช้แอตทริบิวต์ View: android:background="@drawable/bgimage" ปัญหาเดียวในเรื่องนี้คือการขยายภาพให้พอดีกับขนาดปุ่ม ไม่มีการเข้ารหัสขนาดปุ่มคงที่ (เป็นพิกเซล!) มีวิธีที่จะบอก Android ว่าอย่ายืดภาพพื้นหลังเลยและครอบตัดหรือวางหรือไม่?

9
การสร้าง LinearLayout จะทำหน้าที่เหมือนปุ่ม
ฉันมีสิ่งLinearLayoutที่ฉันออกแบบให้ดูเหมือน a buttonและมีองค์ประกอบข้อความ / ImageView อยู่สองสามอย่าง ฉันต้องการทำให้การLinearLayoutกระทำทั้งหมดเหมือน a buttonโดยเฉพาะอย่างยิ่งเพื่อให้สถานะที่กำหนดไว้ดังนั้นจึงมีพื้นหลังที่แตกต่างกันเมื่อกด มีวิธีที่ดีกว่าการสร้างImageButtonขนาดของ Layout ทั้งหมดและการวางตำแหน่งอย่างแน่นอนหรือไม่?

10
เลื่อนหน้าเมื่อซอฟต์คีย์บอร์ดโผล่ขึ้นมา
ฉันมี<ScrollView>เค้าโครง: <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/my_scrollview" android:layout_width="fill_parent" android:layout_height="wrap_content" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <EditText android:id="@+id/input_one" android:layout_width="300dp" android:layout_height="wrap_content" android:layout_gravity="center" android:inputType="number" > <EditText android:id="@+id/input_two" android:layout_width="300dp" android:layout_height="wrap_content" android:layout_gravity="center" android:inputType="number" > <EditText android:id="@+id/input_three" android:layout_width="300dp" android:layout_height="wrap_content" android:layout_gravity="center" android:inputType="number" > <Button android:id="@+id/ok_btn" android:layout_width="200dp" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="20dp" android:text="@string/ok_str" /> </LinearLayout> </ScrollView> ดังที่คุณเห็นด้านบนการจัดวางแบบเรียบง่ายประกอบด้วยช่องป้อนข้อมูลสามช่องและปุ่ม "ตกลง" ฉันเรียกใช้แอปด้วยเค้าโครงด้านบนเมื่อฉันแตะที่ช่องป้อนข้อมูลที่ 1 …

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