ฉันต้องการแสดงปุ่มใต้ไฟล์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" เป็น "vertical"
AngeloS ยังระบุในโพสต์แรกของเขาด้วยว่าเขาไม่แน่ใจว่า
android:layout_weight="0.1"
พาราในLinearLayout
รอบนั้นListView
มีผลหรือไม่ ฉันเพิ่งลองและมันทำได้จริง! หากไม่มีปุ่มจะถูกดันออกจากหน้าจออีกครั้ง
android:layout_alignParentBottom="true"
ได้ แต่เพื่อความชัดเจนคุณต้องการให้ปุ่มติดอยู่ที่ด้านล่างของ ListView เมื่อมีบางรายการหรือไม่? ถ้าใช่ดูสิ่งที่ริชพูด