4

ImageView をヘッダーとして ListView に追加する方法を教えてくれる人はいますか?

私のコードはここにあります:

LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View snapshot = inflater.inflate(R.layout.map_snapshot, null);

ListView channelsList = (ListView) findViewById(R.id.channelsList);
channelsList.addHeaderView(snapshot);

今では何も表示されません。

4

4 に答える 4

7

親 (ListView) をパラメーターとして渡して、ヘッダー ビューをインフレートしてみてください。

ListView channelsList = (ListView) findViewById(R.id.channelsList);
View snapshot = inflater.inflate(R.layout.map_snapshot, channelList, false);

次に、それを ListView に追加します。

channelsList.addHeaderView(snapshot);
于 2012-07-18T07:00:27.850 に答える
0

レイアウト map_snapshot では、ここで線形レイアウトを使用しているため、親レイアウトが必要です。

 ListView channelsList = (ListView) findViewById(R.id.channelsList);
    LinearLayout headerView = (LinearLayout) getLayoutInflater().inflate(R.layout.map_snapshot, null);
    listView.addHeaderView(headerView);

レイアウトにビューを追加する場合:

TextView mUsername=(TextView) headerView.findViewById(R.id.user_name);
于 2012-07-18T07:00:34.170 に答える
0

CommonsWare MergeAdapterまたはSectionedListAdapterを使用できます。このライブラリを使用すると、任意のファイルをViewヘッダーとして使用できますListview。詳細については、この SO の質問と受け入れられた回答を参照してください。

于 2012-07-18T06:59:50.810 に答える
0

試す:

ListView channelsList = (ListView) findViewById(R.id.channelsList);
LayoutInflater inflater = getLayoutInflater();
ViewGroup header = (ViewGroup)inflater.inflate(R.layout.map_snapshot, channelsList , false);
channelsList .addHeaderView(header, null, false);
于 2012-07-18T06:59:52.413 に答える