2012-07-18 67 views
4

任何人都可以幫助我找出如何將一個ImageView作爲頭添加到一個ListView?如何添加一個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); 

現在它說明不了什麼。

回答

7

嘗試膨脹傳遞父(ListView控件)作爲參數,你的頭的看法:

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

然後,只需將其添加到ListView:

channelsList.addHeaderView(snapshot); 
+0

謝謝,那有效! – Graykos 2012-07-18 07:07:02

+0

太好了,如果那是你的解決方案,請接受答案。 – 2012-07-18 07:12:46

0

您可以使用CommonsWare MergeAdapterSectionedListAdapter。有了這個庫,您可以使用任何View作爲標題在您的Listview。有關更多信息,請參閱this SO question並接受答案。

+0

@Downvoter我可以把你的downvote原因呢? – Angelo 2012-07-18 07:06:08

+0

@Downvoter Downvoting並沒有給出理由不會幫助任何人。我想知道我做錯了什麼,我已經使用了我發佈的內容,它確實幫助了我。如果未經過測試,我不會給出答案。 – Angelo 2012-07-18 07:12:25

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); 
+0

是的,指定列表作爲父母,同時膨脹幫助! – Graykos 2012-07-18 07:06:23

+0

我知道了,但是我的名聲太低了,無法Upvote的答案((真的很抱歉, – Graykos 2012-07-18 07:32:29

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); 
相關問題