2013-01-14 31 views
2

我有一個佈局,我試圖設置由三個不同的佈局合併爲一個。我有兩個RelativeLayouts作爲前兩個項目和一個列表適配器作爲第三個。使用MergeAdapter的原因是因爲我希望整個頁面滾動,但我希望整個佈局中的第二個總項目(第二個RelativeLayout)能夠保持頂部。所以我試圖用StickyListHeaders Library來完成它。StickyListHeaders和MergeAdapter

它似乎並沒有被廣泛使用,儘管它的想法很棒。無論如何,我必須在我的列表適配器中重寫兩個方法,在這種情況下,它是一個MergeAdapter。我不斷收到一個NullPointerException異常,但它並沒有告訴我在我的代碼中發生了什麼。因此,如果任何人有使用該庫的經驗,並且更具體地使用帶有MergeAdapter的庫,你能告訴我我做錯了什麼嗎?這是我的MergeAdapter的代碼。

private class ProfileMergeAdapter extends MergeAdapter implements StickyListHeadersAdapter{ 

    @Override 
    public View getHeaderView(int position, View convertView, ViewGroup parent) { 

     LayoutInflater nameInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView = (RelativeLayout) nameInflater.inflate(R.layout.name_line, null); 
     profilePhotoBottom = (ImageView) convertView.findViewById(R.id.profile_pic_bottom); 
     TextView userName = (TextView) convertView.findViewById(R.id.userName); 
     userName.setText(Utility.userName); 
     return convertView; 
    } 

    @Override 
    public long getHeaderId(int position) { 
     return 1; 
    } 

} 

而這裏的logcat的:

01-13 20:39:21.237: W/dalvikvm(4917): threadid=1: thread exiting with uncaught exception (group=0x40de5930) 
01-13 20:39:21.245: E/AndroidRuntime(4917): FATAL EXCEPTION: main 
01-13 20:39:21.245: E/AndroidRuntime(4917): java.lang.NullPointerException 
01-13 20:39:21.245: E/AndroidRuntime(4917):  at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:523) 
01-13 20:39:21.245: E/AndroidRuntime(4917):  at android.view.View.measure(View.java:15513) 
01-13 20:39:21.245: E/AndroidRuntime(4917):  at com.emilsjolander.components.stickylistheaders.StickyListHeadersListView.measureHeader(StickyListHeadersListView.java:242) 
01-13 20:39:21.245: E/AndroidRuntime(4917):  at com.emilsjolander.components.stickylistheaders.StickyListHeadersListView.scrollChanged(StickyListHeadersListView.java:284) 
01-13 20:39:21.245: E/AndroidRuntime(4917):  at com.emilsjolander.components.stickylistheaders.StickyListHeadersListView.onScroll(StickyListHeadersListView.java:269) 
01-13 20:39:21.245: E/AndroidRuntime(4917):  at android.widget.AbsListView.invokeOnItemScrollListener(AbsListView.java:1340) 
01-13 20:39:21.245: E/AndroidRuntime(4917):  at android.widget.ListView.layoutChildren(ListView.java:1753) 
01-13 20:39:21.245: E/AndroidRuntime(4917):  at android.widget.AbsListView.onLayout(AbsListView.java:1994) 
01-13 20:39:21.245: E/AndroidRuntime(4917):  at android.view.View.layout(View.java:14003) 
01-13 20:39:21.245: E/AndroidRuntime(4917):  at android.view.ViewGroup.layout(ViewGroup.java:4375) 
01-13 20:39:21.245: E/AndroidRuntime(4917):  at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
01-13 20:39:21.245: E/AndroidRuntime(4917):  at android.view.View.layout(View.java:14003) 
01-13 20:39:21.245: E/AndroidRuntime(4917):  at android.view.ViewGroup.layout(ViewGroup.java:4375) 
01-13 20:39:21.245: E/AndroidRuntime(4917):  at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
01-13 20:39:21.245: E/AndroidRuntime(4917):  at android.view.View.layout(View.java:14003) 
01-13 20:39:21.245: E/AndroidRuntime(4917):  at android.view.ViewGroup.layout(ViewGroup.java:4375) 
01-13 20:39:21.245: E/AndroidRuntime(4917):  at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
01-13 20:39:21.245: E/AndroidRuntime(4917):  at android.view.View.layout(View.java:14003) 
01-13 20:39:21.245: E/AndroidRuntime(4917):  at android.view.ViewGroup.layout(ViewGroup.java:4375) 
+0

嗯,我首先刪除'MergeAdapter',看看你是否可以使用普通適配器來運行其他庫。 – CommonsWare

回答

0

感謝您的答覆馬克。我明白了,有點兒。我想我的layout_width和layout_height在我的XML中對於其中一個列表項而言是一團糟,並且改變它們並不起作用。所以我在代碼中使用LayoutParams更改了項目的高度和寬度。

相關問題