Tôi có một GridView tùy chỉnh với các mặt hàng như thếGridView với mục vuông trong Android với chiều rộng adaptive/chiều cao
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:gravity="center"
android:longClickable="false"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:longClickable="false"
android:text="0"
android:textSize="60sp" />
</LinearLayout>
Tôi muốn mục của tôi để có hình vuông và tôi muốn GridView để căng rộng để điền vào tất cả mọi chiều rộng của màn hình theo hướng dọc và tất cả chiều cao theo hướng ngang. Nó sẽ giống như thế này
Trường hợp A - là cạnh của hình vuông và B là chiều rộng lề (có thể bằng không). Tôi nghĩ rằng có lẽ tôi nên ghi đè lên phương pháp onMeasure, nhưng chính xác thì tôi nên làm gì? Có thể ai cũng có thể giúp bạn?
EDIT OK, tôi đã cố gắng đặt chiều rộng và chiều cao của các mục theo cách thủ công trong phương thức getView của bộ điều hợp, tốt hơn nhưng vẫn không phải là thứ tôi muốn. Làm thế nào tôi có thể loại bỏ khoảng cách giữa các cột?
Kiểm tra câu trả lời của tôi về Cách quản lý GridView http://stackoverflow.com/a/13835812/833622 –
Về cơ bản những gì bạn đề xuất là tính toán chiều cao và chiều rộng theo cách thủ công của một mục và sau đó chuyển giá trị này cho bộ điều hợp, phải ? Trong khi điều này có lẽ sẽ làm việc, đó là giải pháp vụng về imho. – user1685095
Thực ra bạn sẽ chỉ đặt bộ điều hợp sau khi đã xem lưới. Nó giống như sử dụng GlobalLayoutListener. Một khi GridView được đo, bạn có thể tính toán tất cả mọi thứ chính xác. –