0

私は気が狂うような問題に直面しています。それが問題です。メディア ファイルを表示する展開可能なリスト アクティビティがあります。1 つのグループは音声ファイルで、もう 1 つのグループは画像ファイルです。AudioGroup の子には 1 つのレイアウトがあり、ImageGroup の子には別の異なるレイアウトがあります。これは私が使用しているコードです

拡張可能なリスト アダプター、CHILDVIEW パーツ

 @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測定のみを使用して何かをしてみてください(それは機能しますが、私が望むものではありません)

  • ImageGroup レイアウトで別の画像を使用してみてください

  • ViewHolder と convertView を使用して、getChildView メソッド内のレイアウトを管理します。

これらのいずれか (dp サイズを使用する場合を除く) は機能しますが、再度実行することを意味する場合でも、提案を受け付けています。

皆さん、ありがとうございました

4

1 に答える 1