我正在学习GridView。正如您从下面的屏幕截图中看到的,我添加了13个带有各种长度字符串的按钮作为文本。然而,长文本按钮相互重叠,我试过,但我无法解决它。我想要的是每一行都具有相同高度的最高元素,例如第1行中的所有按钮都应该具有“lorem ipsum dolor sit amet”的高度,而所有其他行应该具有最长的元素高度。我怎样才能做到这一点?
如果不可能,或者我可以有以下内容:所有元素都是它们的大小,但是网格实际上不是矩形,它可以有以下方案:(实际上没有网格,它只是将视图一起附加到列中,而不考虑实际网格的位置。
------------------------------------------------|
| | 2 | |
| 1 |---------------- 3 |
| | |----------------|
---------------| 5 | |
| 4 | | 6 |
|------------------------------|-----------------
我的网格视图:
<GridView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="90dp"
android:gravity="fill_vertical"
android:numColumns="3"
>
</GridView>
我的适配器类的getView方法,它扩展了BaseAdapter:
public View getView(int position, View convertView, ViewGroup arg2) {
Button btn = null;
if (convertView == null) {
btn = new Button(mContext);
} else {
btn = (Button) convertView;
}
btn.setText(txts[position]);
return btn;
}
注意:我将使用自定义视图,我只是使用简单的按钮进行测试。
答案 0 :(得分:1)
你问的不是GridView的能力。您可能希望在自定义Gridview中修改onMeasure。
另一方面,看起来你想要实现的是使用scrollview和linearlayout(因为在你的模拟中,列是对齐的)。