1

Можно использовать PercentRelativeLayout, указав только желаемую ширину и получить автоматический рост?Использование PercentRelativeLayout с указанием только ширины (heigh auto)

Я имею в виду сделать это:

<android.support.percent.PercentRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/main_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <ImageView 
    android:id="@+id/earthImageView" 
    app:layout_widthPercent="30%" 
    android:src="@drawable/earth" 
    android:layout_alignParentRight="true" 
    android:adjustViewBounds="true"/> 
</android.support.percent.PercentRelativeLayout > 

мнение имеет правильную ширину, но если проверить границы макета я могу видеть, что высота MATCH_PARENT. Это означает, что хэнд android: adjustViewBounds = "true" не работает.

Я попытался добавить приложение: layout_widthPercent = "WRAP_CONTENT", но не имеет никакого эффекта.

спасибо.

EDIT:

так же возникают проблемы при выполнении обратной ситуации:

<ImageView 
     android:id="@+id/earthImageView" 
     android:layout_width="wrap_content" 
     android:layout_height="0dp" 
     app:layout_heightPercent="20%" 
     android:src="@drawable/earth" 
     android:adjustViewBounds="true"/> 

ответ

1

Если я правильно понимаю, что вы хотите, чтобы указать ширину и иметь высоту автоматически устанавливается на любых adjustViewBounds дает вам.

Если это так, то следующий должен делать то, что вы хотите (я установил оба макета и ImageView высоты к wrap_content):

<android.support.percent.PercentRelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/main_layout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <ImageView 
     android:id="@+id/earthImageView" 
     android:layout_height="wrap_content" 
     app:layout_widthPercent="30%" 
     android:src="@drawable/lapin" 
     android:layout_alignParentRight="true" 
     android:adjustViewBounds="true"/> 
</android.support.percent.PercentRelativeLayout > 
+0

это похоже на работу !, спасибо! – NullPointerException

+0

btw, если я попробую с ростом процента вместо ширины ... у меня такая же ошибка. Я добавил новую проблему в вопрос, пожалуйста, можете проверить ее? – NullPointerException

+0

Это хороший вопрос @NullPointerException, похоже, он не работает. Вы знаете соотношение вашего изображения? Если это так, вы можете удалить layout_width (и layout_height) и использовать 'app: layout_aspectRatio = "80%"' например – mVck