gpt4 book ai didi

android - GridView 行高行为不正确

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:32:32 25 4
gpt4 key购买 nike

我使用的 GridView 显示带有背景图像和文本的线性布局,就像这个例子一样:

http://www.curious-creature.org/2012/12/11/android-recipe-1-image-with-rounded-corners/

就像那个例子一样,我正在使用该代码使图像具有圆角。

问题是,如果我不使用圆角,我所有的网格项目都是相同的高度,无论它们里面有什么文本,即使我所有的图像都是相同的大小。

但是如果我使用它,项目的高度会包裹到内容中。

我尝试将我的线性布局定义为 wrap_content、fill_parent、match_parent 甚至固定高度,但系统只是忽略了我。

这是我的网格布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFDDDDDD"
android:orientation="vertical"
tools:context=".RouteListActivity" >

<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:layout_margin="20dp"
android:layout_weight="2"
android:animateLayoutChanges="false"
android:clipChildren="false"
android:clipToPadding="false"
android:drawSelectorOnTop="true"
android:gravity="center"
android:horizontalSpacing="10dp"
android:numColumns="2"
android:scrollingCache="false"
android:stretchMode="columnWidth"
android:verticalSpacing="10dp" />

</LinearLayout>

这是我的网格项目:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearlayoutGridLabel"
android:layout_width="wrap_content"
android:layout_height="150dp"
android:layout_weight="1"
android:gravity="bottom|left"
android:orientation="vertical" >

<TextView
android:id="@+id/id_ruta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:visibility="gone" />

<TextView
android:id="@+id/routenameGridLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:background="#77000000"
android:gravity="bottom"
android:padding="5dp"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>

在 Adapter 中加上我的 getView:

@Override
public View getView(int position, View convertView, ViewGroup parent) {

View vi=convertView;
if(convertView==null)
vi = inflater.inflate(R.layout.grid_item, null);

LinearLayout linLayout = (LinearLayout) vi.findViewById(R.id.linearlayoutGridLabel);
Typeface yanone = Typeface.createFromAsset(mContext.getAssets(), "YanoneKaffeesatz-Regular.ttf");
TextView id_ruta = (TextView) vi.findViewById(R.id.id_ruta);
TextView nombre=(TextView)vi.findViewById(R.id.routenameGridLabel);
nombre.setTypeface(yanone);
nombre.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 38);
Ruta current = routeList.get(position);
try {
// Drawable d;
// d = Drawable.createFromStream(mContext.getAssets().open("ruta" + (position+1) + "/title.jpg"), null);
Bitmap b = BitmapFactory.decodeStream(mContext.getAssets().open("ruta" + (position+1) + "/title.jpg"));
StreamDrawable d = new StreamDrawable(b, 10, 0);
linLayout.setBackgroundDrawable(d);
} catch (IOException e) {
linLayout.setBackgroundResource(R.drawable.noimage);
}
nombre.setText("" + current.getNombre());
id_ruta.setText(current.getId().toString());

return vi;
}

坦率地说,我不了解 gridviews 的行为。以前我将不同尺寸的图像设置为背景图像,并且所有元素都相互重叠。即使在网格项目布局上固定高度,我也无法制作相同大小的行。

请问我能在这里找到一些路线吗?

最佳答案

终于解决了,原来是我用的问题

vi = inflater.inflate(R.layout.grid_item, null);

代替

vi = inflater.inflate(R.layout.grid_item, parent, false);

所以布局参数被忽略了。

无论如何,让 GridView 均匀分配空间是一件令人头疼的事情。我想我会切换到 TableView。

关于android - GridView 行高行为不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14091353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com