У меня есть следующий макет как элемент RecyclerView, состоящий из изображения и текста:
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:app = "http://schemas.android.com/apk/res-auto"
xmlns:tools = "http://schemas.android.com/tools"
android:id = "@+id/library_list_element"
android:layout_width = "match_parent"
android:layout_height = "70dp"
android:orientation = "horizontal" >
<ImageButton
android:id = "@+id/button"
android:layout_width = "50dp"
android:layout_height = "50dp"
android:layout_gravity = "center"
android:layout_margin = "10dp"
android:src = "@drawable/ic_delete_black_18dp"
>
</ImageButton>
<TextView
android:id = "@+id/folderName"
android:layout_width = "wrap_content"
android:layout_height = "match_parent"
android:gravity = "center"
android:maxLines = "3"
android:minLines = "1"
android:textAppearance = "?attr/textAppearanceBody1"
android:textSize = "14sp"
tools:text = "/sdcard/somepath/somewhere" />
</LinearLayout>
Я хочу поставить кнопку после текста. Если я инвертирую порядок текста/кнопки, текст занимает все пространство, а кнопка выходит за пределы. Я знаю, что могу указать размер текста вручную, но это не очень чисто. Как вы делаете, чтобы иметь следующий макет? :
<--------------------------Text--------------------------><-----Button----->
Wrapping content 50dp
Для этого вы можете использовать layout_weight = "1" в TextView.
<TextView
android:id = "@+id/folderName"
android:layout_width = "0dp"
android:layout_height = "match_parent"
android:layout_weight = "1"
android:gravity = "center"
android:maxLines = "3"
android:minLines = "1"
android:textAppearance = "?attr/textAppearanceBody1"
android:textSize = "14sp"
tools:text = "/sdcard/somepath/somewhere" />
<ImageButton
android:id = "@+id/button"
android:layout_width = "50dp"
android:layout_height = "50dp"
android:layout_gravity = "center"
android:layout_margin = "10dp"
android:src = "@drawable/ic_delete_black_18dp" />
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:app = "http://schemas.android.com/apk/res-auto"
xmlns:tools = "http://schemas.android.com/tools"
android:id = "@+id/library_list_element"
android:layout_width = "match_parent"
android:layout_height = "70dp"
android:orientation = "horizontal">
<TextView
android:id = "@+id/folderName"
android:layout_width = "0dp"
android:layout_height = "match_parent"
android:layout_weight = "1"
android:gravity = "center"
android:maxLines = "3"
android:minLines = "1"
android:textAppearance = "?attr/textAppearanceBody1"
android:textSize = "14sp"
tools:text = "/sdcard/somepath/somewhere" />
<ImageButton
android:id = "@+id/button"
android:layout_width = "50dp"
android:layout_height = "50dp"
android:layout_gravity = "center"
android:layout_margin = "10dp"
android:src = "@drawable/ic_delete_black_18dp"/>
</LinearLayout>
используйте ограничение или относительную компоновку для достижения этого