tôi thực sự cố gắng, nhưng tôi không thể hiểu làm thế nào giải thích Android layout_weight
thiết lập ...vấn đề tìm hiểu XML Android layout_weight
Những gì tôi đang cố gắng để đạt được là
- một tiêu đề trên với chiều cao cố định
- một khu vực đầu vào ở dưới cùng chứa một EditText và một nút
- một phần nội dung ở giữa đó là tham gia tất cả những gì còn lại của không gian
Khi nhập, tôi muốn phát triển EditText thành chiều cao cụ thể và bắt đầu cuộn nếu văn bản được nhập vượt quá chiều cao có sẵn. Làm điều này tôi cần xung quanh LinearLayout
để phát triển cùng với EditText.
Nếu tôi xác định chiều cao cụ thể cho bên trong LinearLayout
, nó sẽ không phát triển. Nếu không, bố cục bên trong sẽ TẤT CẢ không gian thay vì ScrollView, bất kể tôi thử sử dụng gì layout_weight
. :(
XML hiện tại của tôi trông như thế:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="I'm a header" />
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="bottom">
<LinearLayout
android:id="@+id/itemContainer"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</ScrollView>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="50dp"
android:padding="2dp"
android:gravity="bottom"
android:isScrollContainer="true"
android:background="@drawable/steel" >
<EditText
android:id="@+id/edittext01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.2"
android:scrollbars="vertical"
android:fadingEdge="vertical"
android:fadingEdgeLength="60dp"
android:maxHeight="40dp"
android:textSize="15sp" />
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.8"
android:layout_gravity="right"
android:text="Send"
android:textStyle="bold"
android:textSize="15sp" />
</LinearLayout>
</LinearLayout>
Bất cứ lời khuyên được đánh giá rất
Cảm ơn Mayra. Đó là chính xác những gì tôi cố gắng làm. Có lẽ kcoppock có một ý tưởng khác. Nếu nó phải là tôi sẽ kết thúc việc tạo bố trí cho các giải pháp khác nhau. :(Thiết lập ScrollView đến một kích thước cụ thể VÀ thêm layout_weight = 1 sẽ làm cho ScrollView mất tất cả không gian nó có thể nhận được và "thu nhỏ" thành kích thước được xác định ngay sau khi một số widget khác chiếm nhiều không gian hơn, phải không? – stpn108
Yup, thats ý tưởng –
Nghe đúng.Tôi tin rằng có một thuộc tính setMultiLine cho EditTexts. Nếu bạn thiết lập điều đó, và thiết lập chiều cao là wrap_content, tôi khá chắc chắn nó sẽ mở rộng để phù hợp, và thu nhỏ ScrollView cho phù hợp. – kcoppock