我试图将文本放在底部工具栏中单击的图标下方。文本不会掉下来,看起来像这样:
但是它希望它看起来像这样:
我正在使用带有以下标头的LinearLayout:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
android:orientation="horizontal"
android:background="@color/white">
我的代码如下所示(每个图标两个):
<ImageView
android:id="@+id/nav_wallet"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:src="@drawable/ic_wallet" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:textColor="#8a000000"
android:lineSpacingExtra="8sp"
android:text="@string/wallet_label" />
答案 0 :(得分:0)
您只需将TextView和ImageView封装在LinearLayout中即可。 当然,您还需要调整LinearLayout的宽度。
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/nav_wallet"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:src="@drawable/ic_wallet" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:textColor="#8a000000"
android:lineSpacingExtra="8sp"
android:text="@string/wallet_label" />
</LinearLayout>
由于我不知道完整的XML代码,因此我无法告诉您所需的确切权重,因此您可能还需要花一些时间来获得所需的结果。
答案 1 :(得分:0)
您可以使用LinearLayout并对所有4列使用相等的权重。另外,下面可以有一个Textview是示例代码
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawableBottom="@android:drawable/alert_dark_frame"
android:gravity="center"
android:lineSpacingExtra="8sp"
android:text="Hello" />
<TextView
android:id="@+id/nav_wallet"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawableBottom="@android:drawable/alert_dark_frame"
android:gravity="center"
android:lineSpacingExtra="8sp"
android:text="Hello" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawableBottom="@android:drawable/alert_dark_frame"
android:gravity="center"
android:lineSpacingExtra="8sp"
android:text="Hello" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawableBottom="@android:drawable/alert_dark_frame"
android:gravity="center"
android:lineSpacingExtra="8sp"
android:text="Hello" />
</LinearLayout>
答案 2 :(得分:0)
从您的代码片段看来,您似乎具有水平的LinearLayout作为图像和文本的父级。结果是您将所有项目水平对齐。作为解决方案,您可以将每个项目(文本和图像)放置在其自己的垂直布局中,并将这些布局放置在父水平LinearLayout中。但是,此解决方案创建了更深的视图层次结构,这对于当今的电话而言并不是真正的问题,但这并不是最佳实践。 保留当前父布局的一种更好的解决方案是使用compoundDrawable,如:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/wallet_label"
android:drawableTop="@drawable/ic_wallet"
android:gravity="center"/>
当然,您也可以使用ConstraintLayout。解决您的问题肯定有多种解决方案。
答案 3 :(得分:0)
谢谢大家的帮助,能够通过将每个textview和imageview放置在linearlayout中并与之隔开来解决此问题。
<LinearLayout
android:orientation="vertical"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal">
<ImageView
android:id="@+id/nav_wallet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@drawable/ic_wallet" />
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:textSize="12sp"
android:textColor="#8a000000"
android:lineSpacingExtra="8sp"
android:text="@string/wallet_label" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal">
<ImageView
android:id="@+id/nav_transactions"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_transactions" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:textColor="#8a000000"
android:lineSpacingExtra="8sp"
android:text="@string/tx_label" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal">
<ImageView
android:id="@+id/nav_browser"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_browser" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:textColor="#8a000000"
android:lineSpacingExtra="8sp"
android:text="@string/browser_label" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal">
<ImageView
android:id="@+id/nav_settings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_settings" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:textColor="#8a000000"
android:lineSpacingExtra="8sp"
android:text="@string/settings_label" />
</LinearLayout>