0

ヘッダーを追加しようとしてlistViewいますが、アクティビティの起動時に黒い画面しか表示されません

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.maincoverflow);

        final ListView itemslist = (ListView)findViewById(R.id.itemslist);        
        LayoutInflater inflater = getLayoutInflater();
        ViewGroup mTop = (ViewGroup)inflater.inflate(R.layout.main_header, itemslist, false);
        itemslist.addHeaderView(mTop, null, false);

        //some actions with header and list items
        //example: coverflow_item_title is located in header(R.layout.main_header)
        title = (TextView)findViewById(R.id.coverflow_item_title); //checked - is not null

        CoverFlow coverFlow =  (CoverFlow) findViewById(R.id.coverflow);
        ImageAdapter coverImageAdapter =  new ImageAdapter(this);
        coverFlow.setAdapter(new ImageAdapter(this));
        coverImageAdapter.createImages();

        coverFlow.setAdapter(coverImageAdapter);  
        coverFlow.setOnItemSelectedListener(new CoverAdapterView.OnItemSelectedListener(){           
           ...
           adapter = new LazyAdapter(MainCoverflowActivity.this, tools, tools_images);
           itemslist.setAdapter(adapter); 
        }

        itemslist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
               ...
        }
}

maincoverflow.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/itemslist"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    </ListView>

</LinearLayout>

main_header.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/coverflow_item_title"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <com.thumbsupstudio.mobitour.CoverFlow
        android:id="@+id/coverflow"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>

    <ImageView
        android:id="@+id/shadowbox"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/shadow_box" />

</LinearLayout>

私がCoverflowウィジェットを使用していることに気付くかもしれません (ここからhttp://www.inter-fuser.com/2010/01/android-coverflow-widget.html ) - 正常に動作します。

一般的に、項目が変更されるとlistView内容が変更されます。問題なく動作しますが、でスクロールするCoverflow必要があるため、ヘッダーに添付することにしました。その後は何もなく、画面は真っ暗。CoverflowlistViewlistViewCoverflow

4

2 に答える 2

0
try this

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
<RelativeLayout
        android:id="@+id/headerLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"/>
<TextView
        android:id="@+id/coverflow_item_title"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <com.thumbsupstudio.mobitour.CoverFlow
        android:id="@+id/coverflow"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>

    <ImageView
        android:id="@+id/shadowbox"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/shadow_box" />

</RelativeLayout>


    <ListView
        android:id="@+id/itemslist"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    </ListView>

</RelativeLayout>
于 2012-04-11T10:24:59.187 に答える
0

解決策を見つけました。理由は完全にはわかりませんが、

正しくありません

init listView
inflate header and add it to the list
set list adapter in Coverflow onItemSelected handler (it launch automatically with item position=0)

正しい

init listView
inflate header and add it to the list
set any adapter to listView (!!!)
set listView adapter in Coverflow onItemSelected handler (it launch automatically with item position=0)

アクティビティの起動後listView、CoverflowonItemSelectedハンドラーで設定されたアダプター コンテンツがあります。最初のアダプターの割り当てとは何ですか - わかりません。

于 2012-04-11T11:30:22.947 に答える