WRAP_CONTENT并没有在android中包装listview宽度

时间:2016-09-08 14:55:49

标签: android listview

我有一个listView,其中包含应用程序图标列表。我正在尝试以编程方式设置listview高度和宽度:

listView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));

但是listView的宽度并没有根据应用程序图标的宽度而结束。它只是简单地覆盖了整个屏幕。 我在简单listView上实现了LinearLayout。有没有解决方法。

我正在listview使用windowManager,因此我按照以下代码设置其高度和宽度:

首先,我设置了线性布局的高度和宽度,如下所示:

LinearLayout.LayoutParams listParam=new LinearLayout.LayoutParams(
            80, ViewGroup.LayoutParams.WRAP_CONTENT
    );
    listLinear.setLayoutParams(listParam); //listLinear is my linearLayout

在linearLayout中添加listview之后:

listView.setId(listId);
    listView.setAdapter(listadapter);
    listView.setLayoutParams(new LinearLayout.LayoutParams(80, ViewGroup.LayoutParams.WRAP_CONTENT));    
    listLinear.addView(listView);

我想用WRAP_CONTENT替换80作为宽度。

1 个答案:

答案 0 :(得分:1)

在ListView XML上试试这个:

$encoded = 'SomeBase64EncodedString';

$decoded = base64_decode($encoded);
// Now $decoded is the binary content of image, save it anywhere you want.
// Example: file_put_content('/tmp/image.png', $decoded);

// When you want to retrieve the base64 encoded string again
$decoded = file_get_contents('/tmp/image.png');
$encoded = base64_encode($decoded);

// Now you have $encoded, as a base64 encoded string. Do as you please with it.

我在FrameLayout中有这个listview,但你可以尝试将它放在RelativeLayout中。