如何将图像放在 ListView 中 TextView 行的底部
How to put an image at bottom of TextView row in a ListView
我正在为 WearOS 设计布局,但遇到了问题。我有一个 ListView,ListView 的每一行(TextView)都占据了整个屏幕。现在,我想在每个 TextView 的底部放置一个图标。我的目标是让它看起来像下面这样:
除了每一行都有图标外,我现在拥有我想要的一切。我导入了它,我只是不知道如何定义XML。我尝试了其他 Whosebug 问题,但无法解决问题。我也对我的自定义适配器充满信心。给我带来麻烦的是布局。我是布局的新手,所以肯定是我不理解它们给我带来了麻烦。我尝试按照解释 Android 布局如何工作的教程进行操作,但由于某种原因我没有得到它们。
ListView 的 XML 是:
<?xml version="1.0" encoding="utf-8"?>
<!-- Defines the layout for the ListView-->
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/goals_list_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</android.support.constraint.ConstraintLayout>
并且 ListView 的每一行的 XML 是:
<?xml version="1.0" encoding="utf-8"?>
<!-- Defines the layout for a row in the ListView-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
>
<TextView
android:id="@+id/goal_row"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="-"
android:gravity="center"
android:textSize="20sp"
android:textStyle="bold" >
</TextView>
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/info_icon"
/>
</LinearLayout>
我想使用这些布局,所以请尝试用我已有的布局帮助我。如果您对以不同的方式做我正在尝试做的事情有建议,我愿意接受建议,但这就是我要实施它的方式。感谢您的任何帮助。
设置 android:orientation="horizontal"
将并排放置视图,而 android:orientation="vertical"
将它们垂直放置,一个在另一个下面。
只需将 XML 中的 LinearLayout
更改为 ListView
的每一行,如下所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
>
<TextView
android:id="@+id/goal_row"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="-"
android:gravity="center"
android:textSize="20sp"
android:textStyle="bold" >
</TextView>
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/info_icon"
/>
</LinearLayout>
你正在使用方向作为 "horizontal"
它的作用是将你的小部件并排放置并导致重叠将其更改为 "vertical"
准备就绪:
<?xml version="1.0" encoding="utf-8"?>
<!-- Defines the layout for a row in the ListView-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
>
<TextView
android:id="@+id/goal_row"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:text="-"
android:gravity="center"
android:textSize="20sp"
android:textStyle="bold" >
</TextView>
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:src="@drawable/info_icon"
/>
</LinearLayout>
您也可以使用单个 textview
并将其绘制为 bottom
<?xml version="1.0" encoding="utf-8"?>
<!-- Defines the layout for a row in the ListView-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
>
<TextView
android:id="@+id/goal_row"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="-"
android:drawableBottom="@drawable/ic_icon"
android:drawablePadding="10dp"
android:padding="5dp"
android:textColor="@color/colorPrimaryDark"
android:gravity="center"
android:textSize="20sp"
android:textStyle="bold" >
</TextView>
</LinearLayout>
尝试以下操作:
<?xml version="1.0" encoding="utf-8"?>
<!-- Defines the layout for a row in the ListView-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
>
<TextView
android:id="@+id/goal_row"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Hello W"
android:layout_above="@id/base"
android:layout_alignParentTop="true"
android:gravity="center"
android:layout_centerHorizontal="true"
android:textSize="20sp"
android:textStyle="bold" >
</TextView>
<ImageView
android:id="@+id/icon"
android:layout_above="@id/base"
android:layout_centerHorizontal="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon"/>
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:id="@+id/base"
android:layout_alignParentBottom="true">
</View>
</RelativeLayout>
输出:--------
我正在为 WearOS 设计布局,但遇到了问题。我有一个 ListView,ListView 的每一行(TextView)都占据了整个屏幕。现在,我想在每个 TextView 的底部放置一个图标。我的目标是让它看起来像下面这样:
除了每一行都有图标外,我现在拥有我想要的一切。我导入了它,我只是不知道如何定义XML。我尝试了其他 Whosebug 问题,但无法解决问题。我也对我的自定义适配器充满信心。给我带来麻烦的是布局。我是布局的新手,所以肯定是我不理解它们给我带来了麻烦。我尝试按照解释 Android 布局如何工作的教程进行操作,但由于某种原因我没有得到它们。
ListView 的 XML 是:
<?xml version="1.0" encoding="utf-8"?>
<!-- Defines the layout for the ListView-->
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/goals_list_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</android.support.constraint.ConstraintLayout>
并且 ListView 的每一行的 XML 是:
<?xml version="1.0" encoding="utf-8"?>
<!-- Defines the layout for a row in the ListView-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
>
<TextView
android:id="@+id/goal_row"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="-"
android:gravity="center"
android:textSize="20sp"
android:textStyle="bold" >
</TextView>
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/info_icon"
/>
</LinearLayout>
我想使用这些布局,所以请尝试用我已有的布局帮助我。如果您对以不同的方式做我正在尝试做的事情有建议,我愿意接受建议,但这就是我要实施它的方式。感谢您的任何帮助。
设置 android:orientation="horizontal"
将并排放置视图,而 android:orientation="vertical"
将它们垂直放置,一个在另一个下面。
只需将 XML 中的 LinearLayout
更改为 ListView
的每一行,如下所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
>
<TextView
android:id="@+id/goal_row"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="-"
android:gravity="center"
android:textSize="20sp"
android:textStyle="bold" >
</TextView>
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/info_icon"
/>
</LinearLayout>
你正在使用方向作为 "horizontal"
它的作用是将你的小部件并排放置并导致重叠将其更改为 "vertical"
准备就绪:
<?xml version="1.0" encoding="utf-8"?>
<!-- Defines the layout for a row in the ListView-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
>
<TextView
android:id="@+id/goal_row"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:text="-"
android:gravity="center"
android:textSize="20sp"
android:textStyle="bold" >
</TextView>
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:src="@drawable/info_icon"
/>
</LinearLayout>
您也可以使用单个 textview
并将其绘制为 bottom
<?xml version="1.0" encoding="utf-8"?>
<!-- Defines the layout for a row in the ListView-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
>
<TextView
android:id="@+id/goal_row"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="-"
android:drawableBottom="@drawable/ic_icon"
android:drawablePadding="10dp"
android:padding="5dp"
android:textColor="@color/colorPrimaryDark"
android:gravity="center"
android:textSize="20sp"
android:textStyle="bold" >
</TextView>
</LinearLayout>
尝试以下操作:
<?xml version="1.0" encoding="utf-8"?>
<!-- Defines the layout for a row in the ListView-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
>
<TextView
android:id="@+id/goal_row"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Hello W"
android:layout_above="@id/base"
android:layout_alignParentTop="true"
android:gravity="center"
android:layout_centerHorizontal="true"
android:textSize="20sp"
android:textStyle="bold" >
</TextView>
<ImageView
android:id="@+id/icon"
android:layout_above="@id/base"
android:layout_centerHorizontal="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon"/>
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:id="@+id/base"
android:layout_alignParentBottom="true">
</View>
</RelativeLayout>
输出:--------