У меня есть этот xml-код:
<LinearLayout
android:layout_width = "wrap_content"
android:layout_height = "140dp">
<de.hdodenhof.circleimageview.CircleImageView
android:id = "@+id/imageprofile"
android:layout_width = "120dp"
android:layout_height = "110dp"
android:layout_gravity = "right|center"
android:layout_margin = "35dp" />
<TableLayout
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_gravity = "center_vertical|right"
android:paddingLeft = "15dp">
<TableRow
android:id = "@+id/tableRow"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_gravity = "center"
android:gravity = "center">
<TextView
android:id = "@+id/tvFullName"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_gravity = "center_vertical|left"
android:fontFamily = "sans-serif-light"
android:text = ""
android:textSize = "30dp"
android:textStyle = "bold" />
</TableRow>
<TableRow
android:gravity = "center"
android:layout_gravity = "center"
android:id = "@+id/tableRow"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content">
<TextView
android:id = "@+id/tvUserName"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:layout_gravity = "center_vertical|left"
android:text = "Small Text"
android:textSize = "15dp"
android:textStyle = "italic" />
</TableRow>
</TableLayout>
</LinearLayout>
В этом коде изображение (id: imageprofile) должно быть выровнено по левому краю. и TableLayout должен быть выровнен по правому краю.
Все работает нормально, за исключением того, что TableLayout не выравнивается по левому краю. Что не так?
Я дам мне минутку.
Я не могу сделать снимок экрана, но макет вкладки выровнен по левому краю и связан с изображением, а не справа на границе линейного макета.
где вы используете TabLayout в приведенном выше коде, я его не вижу.
Что ты имеешь в виду, это там.
Я имею в виду tablelayout извините
Попробуйте с этим
<LinearLayout
android:layout_width = "wrap_content"
android:layout_height = "140dp"
android:orientation = "horizontal"
>
<de.hdodenhof.circleimageview.CircleImageView
android:id = "@+id/imageprofile"
android:layout_width = "120dp"
android:layout_height = "110dp"
android:layout_margin = "35dp" />
<TableLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:paddingLeft = "15dp">
<TableRow
android:id = "@+id/tableRow"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_gravity = "center"
android:gravity = "center">
<TextView
android:id = "@+id/tvFullName"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_gravity = "center_vertical|left"
android:fontFamily = "sans-serif-light"
android:text = ""
android:textSize = "30dp"
android:textStyle = "bold" />
</TableRow>
<TableRow
android:gravity = "center"
android:layout_gravity = "center"
android:id = "@+id/tableRow"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content">
<TextView
android:id = "@+id/tvUserName"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:layout_gravity = "center_vertical|left"
android:text = "Small Text"
android:textSize = "15dp"
android:textStyle = "italic" />
</TableRow>
</TableLayout>
</LinearLayout>
LinearLayout - не лучший родитель для использования в этом случае. layout_gravity не работает так, как вы ожидаете, когда ориентация - horizontal, а вид справа имеет ширину wrap_content и не заполняет все пространство, как в этом случае. Вам следует использовать RelativeLayout или ConstraintLayout. Вот пример использования RelativeLayout:
<?xml version = "1.0" encoding = "utf-8"?>
<RelativeLayout
xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width = "match_parent"
android:layout_height = "140dp"
android:orientation = "horizontal">
<de.hdodenhof.circleimageview.CircleImageView
android:id = "@+id/imageprofile"
android:layout_width = "120dp"
android:layout_height = "110dp"
android:layout_alignParentStart = "true"
android:layout_margin = "35dp"/>
<TableLayout
android:id = "@+id/tablelayout"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_alignParentEnd = "true"
android:layout_centerVertical = "true"
android:layout_marginEnd = "15dp">
<TableRow
android:id = "@+id/tableRow1"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_gravity = "center"
android:gravity = "center">
<TextView
android:id = "@+id/tvFullName"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_gravity = "center_vertical|left"
android:fontFamily = "sans-serif-light"
android:text = ""
android:textSize = "30dp"
android:textStyle = "bold"/>
</TableRow>
<TableRow
android:id = "@+id/tableRow2"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_gravity = "center"
android:gravity = "center">
<TextView
android:id = "@+id/tvUserName"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:layout_gravity = "center_vertical|left"
android:text = "Small Text"
android:textSize = "15dp"
android:textStyle = "italic"/>
</TableRow>
</TableLayout>
</RelativeLayout>
Кроме того, вы должны убедиться, что вы не дублируете идентификаторы в том же макете, что и у TableRow.
покажите скриншот.