1

我正在使用DraggableGridView from here

我之前所做的是将一个简单的以编程方式构建ImageViews到网格中。这工作得很好。

我现在正在尝试添加一个Layout。我试过了RelativeLayout,Framelayout,FrameLayout在一个RelativeLayout.

这是我现在的代码:

/**
 * Rebuild the grid view, e.g. after the adapter has been filled or a backup is restored
 */
private void renewGrid()
{
    dgv.removeAllViews();
    for(int i = 0; i < adapter.getCount(); i++)
    {
        LayoutInflater inflater = (LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        dgv = (DraggableGridView) inflater.inflate(R.layout.grid_item_layout, dgv);
        FrameLayout fl = (FrameLayout) dgv.findViewById(R.id.grid_images);
        ImageView icon = (ImageView) fl.findViewById(R.id.qstile);
        icon.setImageDrawable(res.getDrawable(res.getIdentifier("qstile_" + adapter.getItem(i), "drawable", packagename)));
    }
}

在 grid_item_layout 之后:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:orientation="horizontal" >

    <FrameLayout 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/grid_images">
        <ImageView
            android:layout_width="32dp"
            android:layout_height="32dp"
            android:src="@drawable/icon_delete"/>

        <ImageView
            android:id="@+id/qstile"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    </FrameLayout>

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

</RelativeLayout>

RelativeLayout很好地膨胀到网格中。我可以通过 DDMS 和“转储视图层次结构”功能观察到这一点。该树显示了网格内的所有 RelativeLayout,但每个都没有任何子级。

但是……那不是真的。如果我单步执行代码并观察膨胀的布局,我可以看到孩子们。所以它们被设置,就像在 XML 中所说的那样被添加,但不要被绘制。

网格的OnItemClick listener孩子也可以工作......

关于我在这里缺少什么的任何提示?我已经尝试了几种方法,甚至以编程方式创建完整的布局,然后将其作为子项添加到网格中。仍然没有运气。没有一个孩子被添加。

这可能是 used 的问题DraggableGridView吗?

4

1 回答 1

2

在搜索了几个小时后,我在这个 SO 线程中找到了一个修复

基本上我现在DraggableGridView从而FrameLayout不是扩展ViewGroup。这对我没有任何明显的副作用。

于 2013-08-04T18:26:02.463 回答