Значок индикатора расширяемого списка в Android

У меня есть расширяемый вид списка в моем навигационном ящике. Я пытаюсь установить значок и заставить его показать, что это правильно.

У меня есть два вопроса:

  1. Каким должен быть размер иконки индикатора? 32 * 32? показывает размытым, я хочу, чтобы простой значок плюс и значок минус.

  2. Также я пытаюсь разместить значок индикатора справа? Я не могу этого сделать?

Я перепробовал все способы, но не работал, вот один из них:

@Override
public void onWindowFocusChanged(boolean hasFocus) 
{
    super.onWindowFocusChanged(hasFocus);

    metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    width = metrics.widthPixels;

    if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) 
    {
        expListView.setIndicatorBounds(width - GetDipsFromPixel(50), width - GetDipsFromPixel(10));
    } 
    else 
    {
        expListView.setIndicatorBoundsRelative(width - GetDipsFromPixel(50), width - GetDipsFromPixel(10));
    }
}

Я тестирую приложение на Nexus 5(5.0) и Galaxy Nexus (4.3).

Может ли кто-нибудь помочь мне с этим?

1 ответ

Наконец-то решил проблему сам. Надеюсь, что приведенный ниже ответ будет полезен для тех, кто пытается переместить индикатор группы вправо и т. Д.

Вместо "android:groupIndicator" я добавил imageView в список групп.

    <ImageView
    android:id="@+id/expandableIcon"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:layout_marginRight="15dp"
    android:src="@drawable/plus"
    android:visibility="invisible"
    tools:ignore="RtlHardcoded" />

Затем в BaseExpandableListAdapter место, где вызывается groupView:

Я использовал:

        if(groupPosition != -1)
        {
            int imageResourceId = isExpanded ? R.drawable.plus : R.drawable.minus;
            image.setImageResource(imageResourceId);
            image.setVisibility(View.VISIBLE);
        } 
        else 
        {
            image.setVisibility(View.INVISIBLE);
        }

Выше это просто обходной путь вместо индикатора группы по умолчанию. Это решает проблему.

Все еще не в состоянии выяснить фактический размер для groupindicator? на данный момент я использую 25*25, кажется, идет хорошо, но я бы сказал, что должен быть лучший размер, чтобы показать хорошее качество.

Спасибо!

Другие вопросы по тегам