【问题标题】:How to align to vertical center with empty TextView?如何使用空的TextView与垂直中心对齐?
【发布时间】:2016-11-30 16:01:08
【问题描述】:

我有两个 TextView 的垂直对齐问题:当第二个 TextView 不包含文本时,它像以前一样有一些高度。

所以,我需要这个:

但是看到这个:

这是我的代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ImageButton
        android:id="@+id/menu"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="false"
        android:layout_centerInParent="true"
        android:background="@null"
        android:contentDescription="@string/menu"
        android:src="@drawable/menu" />

    <LinearLayout
        android:id="@+id/LinearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_toLeftOf="@id/menu"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/city"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="111111111111111"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <TextView
            android:id="@+id/region"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:textAppearance="?android:attr/textAppearanceSmall" />

    </LinearLayout>

</RelativeLayout>

如何实现?

【问题讨论】:

  • 我没有得到你到底想要什么?请您再解释一下。
  • 我需要 TextView ("region") 在空时不占用空间。并且 TextView 城市将垂直居中对齐。
  • 尝试对两个文本视图使用android:layout_weight="0.5"。额外的空间可能是因为对于一个TextView,您试图拥有中等大小的文本(因此会占用额外的高度),而对于第二个 TextView,大小很小。如果它们都具有相同的大小,那么额外的空间可能不存在。
  • 您是否尝试让两个TextViews 的大小也一样?
  • 你说你想要TextView ("region") doesn't take space when it empty,但你没有说你还在做什么?我的意思是您将两个文本视图都对齐到按钮的左侧,然后两个 TextView 彼此垂直对齐。但是,现在你的问题是其中一个比另一个高?

标签: android textview alignment


【解决方案1】:

您可以通过将第二个 textview 可见性设置为去以编程方式完成此操作

          txtvw2.setVisibility(View.Gone);

【讨论】:

  • 好的,我删除了它,但没有任何改变。
  • 你到底想要什么请详细说明
  • 我希望 TextView“城市”将由它自己的中心对齐,而不是 LinearLayout1 的中心。请看图片。在第二张图片上空的 TextView 占用空间。
  • Takes Space?你的意思是你的region textview 不应该占用任何空间,如果它是空的?
  • 您可以通过将第二个 textview 可见性设置为去以编程方式执行此操作
【解决方案2】:

您可以通过编程方式执行此操作,这里是 java 代码:

TextView region = (TextView) findViewById(R.id.region);
String regionText = region.getText().toString();

if (!regionText.equalsIgnoreCase("")) {
    region.setVisibility(View.VISIBLE);
}
else {
    region.setVisibility(View.GONE);
}

XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<ImageButton
    android:id="@+id/menu"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="false"
    android:layout_centerInParent="true"
    android:background="@null"
  />

<LinearLayout
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:layout_toLeftOf="@id/menu"
    android:orientation="vertical"
    android:background="#ff00">

    <TextView
        android:id="@+id/city"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:text="111111111111111"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/region"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text=""
        android:visibility="gone"
        android:textAppearance="?android:attr/textAppearanceSmall" />

</LinearLayout>

【讨论】:

    猜你喜欢
    • 2020-06-25
    • 2014-11-03
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 2014-11-05
    • 2012-07-05
    • 2015-11-17
    • 2015-08-05
    相关资源
    最近更新 更多