将图像放到LinearLayout上?

时间:2019-02-22 13:38:25

标签: android xml

我想将我的图片(id:imgAbout)放在页面底部。

    <?xml version="1.0" encoding="utf-8"?>
<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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#9AB89C"
    android:orientation="vertical"
    tools:context=".Vue.MainActivity">
    <android.support.v7.widget.RecyclerView
        android:id="@+id/rvDevice"
        android:layout_width="match_parent"
        android:layout_height="400sp"
        android:layout_marginTop="20sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    <ImageButton
        android:onClick="aboutPage"
        android:id="@+id/imgAbout"
        android:layout_marginTop="20sp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_action_about"
        android:background="#9AB89C"
        android:layout_gravity="bottom"
        android:paddingBottom="0dp"/>
</LinearLayout>

我在LinearLayout中看不到该怎么做。我应该使用RelativeLayout吗?

3 个答案:

答案 0 :(得分:3)

为此设置回收者视图的宽度和高度

android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"

答案 1 :(得分:2)

-首先,永远不要对组件(RecyclerView)使用静态高度或宽度。使用包装内容或匹配父项。 -第二,如果要使用静态高度或宽度,则使用dp比使用sp更好(对于textSize,首选使用sp)。

如果您喜欢LinearLayout,则可以使用此代码。 (%90%的屏幕为RecyclerView,%10%的屏幕为Button)

<?xml version="1.0" encoding="utf-8"?>
<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:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#9AB89C"
android:orientation="vertical"
android:weightSum="10">

<android.support.v7.widget.RecyclerView
    android:id="@+id/rvDevice"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="9" />

<ImageButton
    android:id="@+id/imgAbout"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:background="#9AB89C"
    android:onClick="aboutPage" />
</LinearLayout>

如果您更喜欢RelativeLayout,请使用以下代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#9AB89C">

<ListView
    android:id="@+id/rvDevice"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentTop="true"
    android:layout_above="@+id/imgAbout"
    android:layout_marginTop="20sp" />

<ImageButton
    android:id="@+id/imgAbout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#9AB89C"
    android:layout_alignParentBottom="true"
    android:onClick="aboutPage" />
</RelativeLayout>

两者都会做你想要的。

答案 2 :(得分:1)

使用类似这样的RelativeLayout:

<RelativeLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#9AB89C"
tools:context=".Vue.MainActivity">
<android.support.v7.widget.RecyclerView
    android:id="@+id/rvDevice"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentTop="true"
    android:layout_marginTop="20dp" />
<ImageButton
    android:onClick="aboutPage"
    android:id="@+id/imgAbout"
    android:layout_alignParentBottom="true"
    android:layout_width="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_action_about"
    android:background="#9AB89C"
    android:layout_gravity="bottom"
    android:paddingBottom="0dp"/>
 </RelativeLayout>

FYI的高度边距和内边距应在dp中指定,而文字大小应在sp中