Разделители между родительскими ячейками, а не дочерними ячейками ExpandableListView
Есть несколько вопросов, касающихся этого, но ни один не имеет ответов, которые мне подходят. Я пытаюсь добавить около 10 dp пространства между родительскими ячейками ExpandableListView, но не между дочерними ячейками. Я перепробовал почти все. Суть в том, что мне нужно, чтобы родительские ячейки также округлялись, когда они не развернуты, и затем полукруглые (только верхние углы), когда они развернуты. Последний дочерний элемент в каждой группе при раскрытии становится полукруглым (противоположный путь), поэтому каждая группа в целом похожа на округлый квадрат. Я уже выполнил округление углов, но не могу получить пробел между родительскими ячейками.
Может кто-нибудь, пожалуйста, дайте мне хороший способ сделать это?
Моя текущая попытка:
@Override
public int getGroupCount() {
return (bunches.size()*2)-1;
}
... в getGroupView() я устанавливаю вид на основе позиции...
@Override
public View getGroupView(final int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
if (groupPosition%2!=0) {
convertView = mInflater.inflate(R.layout.fakeview, null);
} else {
convertView = mInflater.inflate(R.layout.header_item, null);
convertView.setBackgroundResource(R.drawable.custom_listview_item_header_expanded);
holder.name = (TextView) convertView.findViewById(R.id.expandable_list_title);
holder.numberOfMembers = (TextView)convertView.findViewById(R.id.num_members_textview);
holder.editImageView = (ImageView)convertView.findViewById(R.id.header_item_imageview_edit);
}
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();
}
if (isExpanded) {
convertView.setBackgroundResource(R.drawable.custom_listview_item_expanded);
} else {
convertView.setBackgroundResource(R.drawable.custom_listview_item);
}
...
Но это создает нулевой указатель при создании ячеек:
11-21 10:00:39.542: E/AndroidRuntime(28855): FATAL EXCEPTION: main
11-21 10:00:39.542: E/AndroidRuntime(28855): Process: me.lunchbunch.stage, PID: 28855
11-21 10:00:39.542: E/AndroidRuntime(28855): java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
11-21 10:00:39.542: E/AndroidRuntime(28855): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:715)
11-21 10:00:39.542: E/AndroidRuntime(28855): at android.view.LayoutInflater.inflate(LayoutInflater.java:482)
11-21 10:00:39.542: E/AndroidRuntime(28855): at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
11-21 10:00:39.542: E/AndroidRuntime(28855): at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
11-21 10:00:39.542: E/AndroidRuntime(28855): at me.lunchbunch.core.listadapter.BunchesActivityListAdapter.getGroupView(BunchesActivityListAdapter.java:125)
11-21 10:00:39.542: E/AndroidRuntime(28855): at android.widget.ExpandableListConnector.getView(ExpandableListConnector.java:446)
11-21 10:00:39.542: E/AndroidRuntime(28855): at android.widget.AbsListView.obtainView(AbsListView.java:2347)
11-21 10:00:39.542: E/AndroidRuntime(28855): at android.widget.ListView.makeAndAddView(ListView.java:1864)
11-21 10:00:39.542: E/AndroidRuntime(28855): at android.widget.ListView.fillDown(ListView.java:698)
11-21 10:00:39.542: E/AndroidRuntime(28855): at android.widget.ListView.fillFromTop(ListView.java:759)
11-21 10:00:39.542: E/AndroidRuntime(28855): at android.widget.ListView.layoutChildren(ListView.java:1673)
11-21 10:00:39.542: E/AndroidRuntime(28855): at android.widget.AbsListView.onLayout(AbsListView.java:2151)
11-21 10:00:39.542: E/AndroidRuntime(28855): at android.view.View.layout(View.java:15671)
11-21 10:00:39.542: E/AndroidRuntime(28855): at android.view.ViewGroup.layout(ViewGroup.java:5038)
11-21 10:00:39.542: E/AndroidRuntime(28855): at android.support.v4.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:581)
11-21 10:00:39.542: E/AndroidRuntime(28855): at android.view.View.layout(View.java:15671)
11-21 10:00:39.542: E/AndroidRuntime(28855): at android.view.ViewGroup.layout(ViewGroup.java:5038)
11-21 10:00:39.542: E/AndroidRuntime(28855): at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1076)
Я предполагаю, что он выдает ошибку, потому что ищет атрибуты держателя на пустом держателе (разделители)
1 ответ
NullPointerException в
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:715)
вероятно означает, что держатель представления не инициализирован правильно
Вы устанавливаете держатель внутри остального. Я думаю, что вам нужно, чтобы это было так?
if (groupPosition%2!=0) {
convertView = mInflater.inflate(R.layout.fakeview, null);
} else {
convertView = mInflater.inflate(R.layout.header_item, null);
convertView.setBackgroundResource(R.drawable.custom_listview_item_header_expanded);
}
holder.name = (TextView) convertView.findViewById(R.id.expandable_list_title);
holder.numberOfMembers = (TextView)convertView.findViewById(R.id.num_members_textview);
holder.editImageView = (ImageView)convertView.findViewById(R.id.header_item_imageview_edit);