文本大小增加时重叠的 Textview + RelativeLayout
Overlapped Textview when text size increased + RelativeLayout
我什么都试过了,还是没成功。
发生了什么。当标题文字较小时,它应该位于 parent 的中心, 完美 ,但当文字较大时,它会重叠到其左侧组件
我想要的:它不应该重叠,但会出现在 设置 Textview
的下一个。当尺寸增加时应该调整它。
小尺寸
大码
代码
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="@android:color/darker_gray" >
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Settings"
android:gravity="center_vertical"
android:layout_alignParentLeft="true"
android:textColor="@android:color/holo_orange_dark"
android:textSize="16.0sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="hiiiiiiiiiiiii Whosebuger!!!!!!!!!!!"
android:padding="4dp"
android:gravity="center"
android:layout_toLeftOf="@+id/txtBack"
android:textColor="@android:color/white"
android:textSize="19sp" />
</RelativeLayout>
将 id 设置为您的第一个 TextView
,然后将第二个设置为 TextView
toRightOf
第一个。
像这样
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="@android:color/darker_gray" >
<TextView
android:id="@+id/textview1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Settings"
android:gravity="center_vertical"
android:layout_alignParentLeft="true"
android:textColor="@android:color/holo_orange_dark"
android:textSize="16.0sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_toRightOf="@id/textview1"
android:text="hiiiiiiiiiiiii Whosebuger!!!!!!!!!!!"
android:padding="4dp"
android:gravity="center"
android:layout_toLeftOf="@+id/txtBack"
android:textColor="@android:color/white"
android:textSize="19sp" />
</RelativeLayout>
希望对您有所帮助。
试试这个,
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="@android:color/darker_gray" >
<TextView
android:id="@+id/txtSetting"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Settings"
android:gravity="center_vertical"
android:layout_alignParentLeft="true"
android:textColor="@android:color/holo_orange_dark"
android:textSize="16.0sp" />
<TextView
android:layout_toRightOf="@+id/txtSetting"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="hiiiiiiiiiiiii Whosebuger!!!!!!!!!!!"
android:padding="4dp"
android:gravity="center"
android:layout_toLeftOf="@+id/txtBack"
android:textColor="@android:color/white"
android:textSize="19sp" />
</RelativeLayout>
使用 layout_toLeftOf ,alignParentLeft 和 alignParentRight
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Settings"
android:id="@+id/txtBack"
android:gravity="center_vertical"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/selectaccount"
android:textColor="@android:color/holo_orange_dark"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hiiiiiiiiiiiii Whosebuger!!!!!!!!!!!"
android:padding="4dp"
android:gravity="center"
android:layout_alignParentRight="true"
android:textColor="@android:color/white"
android:textAppearance="?android:attr/textAppearanceMedium" />
只需用下面的代码替换您的代码:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="@android:color/darker_gray" >
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Settings"
android:gravity="center_vertical"
android:layout_alignParentLeft="true"
android:textColor="@android:color/holo_orange_dark"
android:textSize="16.0sp"
android:id="@+id/txtSettings" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="hiiiiiiiiiiiii Whosebuger!!!!!!!!!!!"
android:padding="4dp"
android:gravity="center"
android:layout_toRightOf="@+id/txtSettings"
android:layout_toLeftOf="@+id/txtBack"
android:textColor="@android:color/white"
android:textSize="19sp" />
</RelativeLayout>
因为您正在为这两个 TextView 使用 match_parent,这就是它们会重叠的原因,根据您的代码,您可以尝试为第二个 TextView 添加修复填充。例如,我们假设第一个TextView的文本"Settings"的宽度是100dp,那么我们可以修改如下代码。
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="@android:color/darker_gray" >
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Settings"
android:gravity="center_vertical"
android:layout_alignParentLeft="true"
android:textColor="@android:color/holo_orange_dark"
android:textSize="16.0sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="hiiiiiiiiiiiii Whosebuger!!!!!!!!!!!"
android:paddingTop="4dp"
android:paddingBottom="4dp"
android:paddingLeft="100dp"
android:paddingRight="100dp"
android:gravity="center"
android:layout_toLeftOf="@+id/txtBack"
android:textColor="@android:color/white"
android:textSize="19sp" />
</RelativeLayout>
将第二个文本视图更改为此:
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="hiiiiiiiiiiiii Whosebuger!!!!!!!!!!!"
android:padding="4dp"
android:gravity="center"
android:layout_toRightOf="@+id/firstTextview"
android:textColor="@android:color/white"
android:textSize="19sp" />
我什么都试过了,还是没成功。
发生了什么。当标题文字较小时,它应该位于 parent 的中心, 完美 ,但当文字较大时,它会重叠到其左侧组件
我想要的:它不应该重叠,但会出现在 设置 Textview
的下一个。当尺寸增加时应该调整它。
小尺寸
大码
代码
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="@android:color/darker_gray" >
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Settings"
android:gravity="center_vertical"
android:layout_alignParentLeft="true"
android:textColor="@android:color/holo_orange_dark"
android:textSize="16.0sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="hiiiiiiiiiiiii Whosebuger!!!!!!!!!!!"
android:padding="4dp"
android:gravity="center"
android:layout_toLeftOf="@+id/txtBack"
android:textColor="@android:color/white"
android:textSize="19sp" />
</RelativeLayout>
将 id 设置为您的第一个 TextView
,然后将第二个设置为 TextView
toRightOf
第一个。
像这样
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="@android:color/darker_gray" >
<TextView
android:id="@+id/textview1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Settings"
android:gravity="center_vertical"
android:layout_alignParentLeft="true"
android:textColor="@android:color/holo_orange_dark"
android:textSize="16.0sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_toRightOf="@id/textview1"
android:text="hiiiiiiiiiiiii Whosebuger!!!!!!!!!!!"
android:padding="4dp"
android:gravity="center"
android:layout_toLeftOf="@+id/txtBack"
android:textColor="@android:color/white"
android:textSize="19sp" />
</RelativeLayout>
希望对您有所帮助。
试试这个,
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="@android:color/darker_gray" >
<TextView
android:id="@+id/txtSetting"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Settings"
android:gravity="center_vertical"
android:layout_alignParentLeft="true"
android:textColor="@android:color/holo_orange_dark"
android:textSize="16.0sp" />
<TextView
android:layout_toRightOf="@+id/txtSetting"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="hiiiiiiiiiiiii Whosebuger!!!!!!!!!!!"
android:padding="4dp"
android:gravity="center"
android:layout_toLeftOf="@+id/txtBack"
android:textColor="@android:color/white"
android:textSize="19sp" />
</RelativeLayout>
使用 layout_toLeftOf ,alignParentLeft 和 alignParentRight
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Settings"
android:id="@+id/txtBack"
android:gravity="center_vertical"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/selectaccount"
android:textColor="@android:color/holo_orange_dark"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hiiiiiiiiiiiii Whosebuger!!!!!!!!!!!"
android:padding="4dp"
android:gravity="center"
android:layout_alignParentRight="true"
android:textColor="@android:color/white"
android:textAppearance="?android:attr/textAppearanceMedium" />
只需用下面的代码替换您的代码:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="@android:color/darker_gray" >
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Settings"
android:gravity="center_vertical"
android:layout_alignParentLeft="true"
android:textColor="@android:color/holo_orange_dark"
android:textSize="16.0sp"
android:id="@+id/txtSettings" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="hiiiiiiiiiiiii Whosebuger!!!!!!!!!!!"
android:padding="4dp"
android:gravity="center"
android:layout_toRightOf="@+id/txtSettings"
android:layout_toLeftOf="@+id/txtBack"
android:textColor="@android:color/white"
android:textSize="19sp" />
</RelativeLayout>
因为您正在为这两个 TextView 使用 match_parent,这就是它们会重叠的原因,根据您的代码,您可以尝试为第二个 TextView 添加修复填充。例如,我们假设第一个TextView的文本"Settings"的宽度是100dp,那么我们可以修改如下代码。
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="@android:color/darker_gray" >
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Settings"
android:gravity="center_vertical"
android:layout_alignParentLeft="true"
android:textColor="@android:color/holo_orange_dark"
android:textSize="16.0sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="hiiiiiiiiiiiii Whosebuger!!!!!!!!!!!"
android:paddingTop="4dp"
android:paddingBottom="4dp"
android:paddingLeft="100dp"
android:paddingRight="100dp"
android:gravity="center"
android:layout_toLeftOf="@+id/txtBack"
android:textColor="@android:color/white"
android:textSize="19sp" />
</RelativeLayout>
将第二个文本视图更改为此:
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="hiiiiiiiiiiiii Whosebuger!!!!!!!!!!!"
android:padding="4dp"
android:gravity="center"
android:layout_toRightOf="@+id/firstTextview"
android:textColor="@android:color/white"
android:textSize="19sp" />