Intereting Posts
Android WebView удаляет файлы cookie из определенного домена Как изменить minSdkVersion проекта? Когда использовать актеров в libgdx? Каковы минусы и плюсы? Встроенная камера, используя дополнительный MediaStore.EXTRA_OUTPUT, сохраняет изображения дважды (в моей папке и по умолчанию) Как установить расширенные пользовательские атрибуты в файлах Android? SlidingUpPanelLayout не рухнет после возобновления работы ОС после моей активности Параллельные HTTP-запросы с доработкой Придерживайтесь в нижней части фрагмента панели просмотра внутри координатора Будет ли приложение, построенное с использованием только armeabi, работать на устройствах armeabi-v7a? Я продолжаю получать сообщения: К сожалению, «некоторые китайцы» прекратили Расположение музыкальных файлов Android? Галерея типов устарела Eclipse Android gen уже существует, но не является исходной папкой Избегайте взлома apk Преобразование строки в массив JSON

Как изменить положение индикатора группы ExpandableListView?

Я хочу изменить индикатор группы ExpandableListView справа с дополнением.

Я использовал пользовательский адаптер для загрузки данных в ExpandableListView .

Это мой ExpandableListView xml.

 <ExpandableListView android:id="@+id/Ex_offers" android:layout_width="250dp" android:layout_height="400dp" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:childDivider="#00000000" android:groupIndicator="@drawable/settings_selector" android:listSelector="@android:color/transparent"> </ExpandableListView> 

Это GroupView xml

  <TextView android:id="@+id/lblListHeadertwo" android:layout_width="match_parent" android:layout_height="40dp" android:background="@drawable/transperant_bar" android:fontFamily="Lato" android:paddingLeft="15dp" android:textColor="#daac56" android:textStyle="bold" android:textSize="17sp" android:paddingTop="8dp" /> 

Это ChildView xml

  <TextView android:id="@+id/text_offers" android:layout_width="300dp" android:layout_height="20dp" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:background="@drawable/transperant_bar" android:paddingLeft="?android:attr/expandableListPreferredChildPaddingLeft" android:textColor="#daac56" android:textSize="14sp"/> <ImageView android:id="@+id/img" android:layout_width="15dp" android:layout_height="15dp" android:layout_marginLeft="12dp"/> 

Это выходное изображение, я хочу установить маржу на этот индикатор.

Введите описание изображения здесь

Solutions Collecting From Web of "Как изменить положение индикатора группы ExpandableListView?"

SetIndicatorBounds (int, int) не работает должным образом для Android 4.3. Они ввели новый метод setIndicatorBoundsRelative (int, int), который работает нормально для 4.3.

 public int GetPixelFromDips(float pixels) { // Get the screen's density scale final float scale = getResources().getDisplayMetrics().density; // Convert the dps to pixels, based on density scale return (int) (pixels * scale + 0.5f); } @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int width = metrics.widthPixels; if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) { explvList.setIndicatorBounds(width-GetPixelFromDips(35), width-GetPixelFromDips(5)); } else { explvList.setIndicatorBoundsRelative(width-GetPixelFromDips(35), width-GetPixelFromDips(5)); } } 
 private void setGroupIndicatorToRight() { /* Get the screen width */ DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int width = dm.widthPixels; expandableList.setIndicatorBounds(width - getDipsFromPixel(35), width - getDipsFromPixel(5)); } // Convert pixel to dip public int getDipsFromPixel(float pixels) { // Get the screen's density scale final float scale = getResources().getDisplayMetrics().density; // Convert the dps to pixels, based on density scale return (int) (pixels * scale + 250.5f); }