0

我正面临一个让我发疯的问题。就是这样。我有一个可扩展的列表活动,它显示媒体文件。一组是音频文件,另一组是图像文件。AudioGroup 的孩子有一种布局,ImageGroup 的孩子有另一种不同的布局。这是我正在使用的代码

可扩展列表适配器,儿童视图部分

 @Override
public View getChildView(int groupPosition, int childPosition,
        boolean isLastChild, View convertView, ViewGroup parent) {
    inflaterChild=activity.getLayoutInflater(); 
    convertView=null;

    //seleccionamos el layout que nos convenga en funcion de si es audio o imagen

    //audio
    if(mediaObjects.get(groupPosition).getFiles().get(childPosition).getTipo()==1){
        viewChild=inflaterChild.inflate(R.layout.layout_child_media_musica, null);  
        descripcion=(TextView)viewChild.findViewById(R.id.descripcionMusica);
        descripcion.setText(Html.fromHtml(mediaObjects.get(groupPosition).getFiles().get(childPosition).getDescripcion()));
    }

    //imagen
    if(mediaObjects.get(groupPosition).getFiles().get(childPosition).getTipo()==2){         
        viewChild=inflaterChild.inflate(R.layout.layout_media_imagenes, null);              
        thumbnail=(ImageView)viewChild.findViewById(R.id.thumbnailMedia);
        thumbnail.setImageResource(R.drawable.portada);
        descripcion=(TextView)viewChild.findViewById(R.id.descripcionImagen);
        descripcion.setText(Html.fromHtml(mediaObjects.get(groupPosition).getFiles().get(childPosition).getDescripcion()));
    }
    return viewChild;
}

音响集团的布局

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    tools:context=".Media" 
    android:orientation="vertical"
    android:id="@+id/childMediaMusica"
    android:weightSum="100">

    <TextView 
        android:id="@+id/descripcionMusica"
        android:layout_height="0dp"
        android:layout_weight="30"
        android:layout_width="match_parent"/>

    <LinearLayout 
        android:id="@+id/contenedorBotones"
        android:layout_height="0dp"
        android:layout_weight="70"
        android:layout_width="match_parent"
        android:orientation="horizontal"
        android:weightSum="100">

        <Button 
            android:id="@+id/playStop"
            android:layout_height="match_parent"
            android:layout_width="0dp"
            android:layout_weight="50"/>

        <Button 
            android:id="@+id/down"
            android:layout_height="match_parent"
            android:layout_width="0dp"
            android:layout_weight="50"/>        
    </LinearLayout>

 </LinearLayout>

图像组布局

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    tools:context=".Media" 
    android:orientation="horizontal"
    android:weightSum="100">

    <ImageView 
        android:id="@+id/thumbnailMedia"
        android:layout_width="0dp"
        android:layout_weight="35"
        android:layout_height="50dp"
        android:scaleType="fitXY"
        android:contentDescription="@string/desc"/>

    <TextView 
        android:id="@+id/descripcionImagen"
        android:layout_width="0dp"
        android:layout_weight="65"
        android:layout_height="50dp"/>   

</LinearLayout>

如您所见,这是一个非常简单的代码。嗯,结果是这样的:

在此处输入图像描述

AudioGroup 布局没有填满整个宽度。ImageGroup 布局一团糟,就像看不到我写的权重一样。

有谁知道这到底是怎么回事?

我已经测试过的东西:

  • 每个布局中主 LinearLayout 上的 fill_parent、match_parent、wrap_content 等的每个组合。

  • 尝试只使用 dp meassure 做事(这有效,但不是我想要的)

  • 尝试在 ImageGroup 布局上使用另一个图像

  • 使用 ViewHolder 和 convertView 来管理 getChildView 方法中的布局

任何这些东西(除了使用 dp 大小)都有效,但我愿意接受建议,即使如果意味着再做一次。

谢谢你们

4

1 回答 1

0

JODERRR POR FIN!!!

好的,我刚刚解决了它。我又花了 3 个 f* *小时。正确设置 ExpandibleList 布局很简单:

 <ExpandableListView
    android:id="@+id/android:list"
    android:layout_width="fill_parent" 
    android:layout_height="0dp"
    android:layout_weight="90"
    android:choiceMode="singleChoice"/>

在第一刻,我将 layout_width 设置为 wrap_content。我不敢相信我以前没有注意到它

于 2013-05-21T09:06:30.147 回答