TextView 在 LinearLayout 中被截断
TextView is getting cut off in a LinearLayout
我正在尝试添加两个具有不同高度的不同文本视图,如下所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/single_margin"
android:layout_marginLeft="@dimen/double_margin"
android:layout_marginRight="@dimen/double_margin"
android:layout_marginTop="@dimen/single_margin"
android:baselineAligned="false"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:id="@+id/newsfeed_ad_title"
android:layout_width="0px"
android:layout_height="match_parent"
android:layout_marginRight="28dp"
android:layout_weight="3"
android:fontFamily="sans-serif-light"
android:gravity="center_vertical"
android:singleLine="false"
android:text="This is example text view that will mess up the height!"
android:textColor="@color/dark_blue"
android:textSize="@dimen/ad_title_text" />
<TextView
android:id="@+id/newsfeed_ad_info_button"
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="2"
android:background="@drawable/selector_rounded_box_light_blue"
android:fontFamily="sans-serif-light"
android:gravity="center"
android:paddingBottom="@dimen/single_margin"
android:paddingLeft="@dimen/double_margin"
android:paddingRight="@dimen/double_margin"
android:paddingTop="@dimen/single_margin"
android:text="Learn More"
android:textColor="@color/dark_blue"
android:textSize="@dimen/body_text" /> </LinearLayout>
结果是这样的:
(不要介意上面的阴影。我裁剪了图像,阴影来自操作栏)
线性布局的高度由较小的textview决定,而不是由较大的textview决定。为什么?我该如何修复它?提前致谢
Make textview's height wrap_content
it will solve the issue
android:id="@+id/newsfeed_ad_title"
android:layout_width="0px"
android:layout_height="wrap_content"
你想让左边的textview(ID为newsfeed_ad_title)不切右边?将 android:layout_height 更改为 "wrap_content"
尝试设置 match_parent
newsfeed_ad_info_button
TextView :
<TextView
android:id="@+id/newsfeed_ad_info_button"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_weight="2"
android:background="@drawable/selector_rounded_box_light_blue"
android:fontFamily="sans-serif-light"
android:gravity="center"
android:paddingBottom="@dimen/single_margin"
android:paddingLeft="@dimen/double_margin"
android:paddingRight="@dimen/double_margin"
android:paddingTop="@dimen/single_margin"
android:text="Learn More"
android:textColor="@color/dark_blue"
android:textSize="@dimen/body_text" />
注意:也可以使用 dp 代替 px :
http://developer.android.com/guide/practices/screens_support.html
试试这个,
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="@dimen/single_margin"
android:layout_marginLeft="@dimen/double_margin"
android:layout_marginRight="@dimen/double_margin"
android:layout_marginTop="@dimen/single_margin"
android:baselineAligned="false"
android:gravity="center"
android:orientation="horizontal" >
<TextView
android:id="@+id/newsfeed_ad_title"
android:layout_width="0px"
android:layout_height="match_parent"
android:layout_marginRight="28dp"
android:layout_weight="3"
android:fontFamily="sans-serif-light"
android:gravity="center_vertical"
android:singleLine="false"
android:text="This is example text view that will mess up the height!"
android:textColor="@color/dark_blue"
android:textSize="@dimen/ad_title_text" />
<TextView
android:id="@+id/newsfeed_ad_info_button"
android:layout_width="0px"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_weight="2"
android:background="@drawable/selector_rounded_box_light_blue"
android:fontFamily="sans-serif-light"
android:gravity="center"
android:paddingBottom="@dimen/single_margin"
android:paddingLeft="@dimen/double_margin"
android:paddingRight="@dimen/double_margin"
android:paddingTop="@dimen/single_margin"
android:text="Learn More"
android:textColor="@color/dark_blue"
android:textSize="@dimen/body_text" />
</LinearLayout>
如果这不能解决您的问题,请提供您的 dimen.xml 文件。
希望这会有所帮助...谢谢
问题是第一个TextView
(ID为newsfeed_ad_title
的那个)的身高是match_parent
。这意味着首先 LinearLayout
将计算其首选高度,然后 TextView
将恰好占据该高度。
给第一个 TextView
一个 wrap_content
将解决问题,因为这样 LinearLayout
将首先要求两个 children 计算他们想要的高度,然后相应地设置他自己的.
<TextView
android:id="@+id/newsfeed_ad_title"
android:layout_width="0px"
android:layout_height="wrap_content"
... //the rest is unmodified
我正在尝试添加两个具有不同高度的不同文本视图,如下所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/single_margin"
android:layout_marginLeft="@dimen/double_margin"
android:layout_marginRight="@dimen/double_margin"
android:layout_marginTop="@dimen/single_margin"
android:baselineAligned="false"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:id="@+id/newsfeed_ad_title"
android:layout_width="0px"
android:layout_height="match_parent"
android:layout_marginRight="28dp"
android:layout_weight="3"
android:fontFamily="sans-serif-light"
android:gravity="center_vertical"
android:singleLine="false"
android:text="This is example text view that will mess up the height!"
android:textColor="@color/dark_blue"
android:textSize="@dimen/ad_title_text" />
<TextView
android:id="@+id/newsfeed_ad_info_button"
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="2"
android:background="@drawable/selector_rounded_box_light_blue"
android:fontFamily="sans-serif-light"
android:gravity="center"
android:paddingBottom="@dimen/single_margin"
android:paddingLeft="@dimen/double_margin"
android:paddingRight="@dimen/double_margin"
android:paddingTop="@dimen/single_margin"
android:text="Learn More"
android:textColor="@color/dark_blue"
android:textSize="@dimen/body_text" /> </LinearLayout>
结果是这样的:
(不要介意上面的阴影。我裁剪了图像,阴影来自操作栏)
线性布局的高度由较小的textview决定,而不是由较大的textview决定。为什么?我该如何修复它?提前致谢
Make textview's height
wrap_content
it will solve the issue
android:id="@+id/newsfeed_ad_title"
android:layout_width="0px"
android:layout_height="wrap_content"
你想让左边的textview(ID为newsfeed_ad_title)不切右边?将 android:layout_height 更改为 "wrap_content"
尝试设置 match_parent
newsfeed_ad_info_button
TextView :
<TextView
android:id="@+id/newsfeed_ad_info_button"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_weight="2"
android:background="@drawable/selector_rounded_box_light_blue"
android:fontFamily="sans-serif-light"
android:gravity="center"
android:paddingBottom="@dimen/single_margin"
android:paddingLeft="@dimen/double_margin"
android:paddingRight="@dimen/double_margin"
android:paddingTop="@dimen/single_margin"
android:text="Learn More"
android:textColor="@color/dark_blue"
android:textSize="@dimen/body_text" />
注意:也可以使用 dp 代替 px : http://developer.android.com/guide/practices/screens_support.html
试试这个,
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="@dimen/single_margin"
android:layout_marginLeft="@dimen/double_margin"
android:layout_marginRight="@dimen/double_margin"
android:layout_marginTop="@dimen/single_margin"
android:baselineAligned="false"
android:gravity="center"
android:orientation="horizontal" >
<TextView
android:id="@+id/newsfeed_ad_title"
android:layout_width="0px"
android:layout_height="match_parent"
android:layout_marginRight="28dp"
android:layout_weight="3"
android:fontFamily="sans-serif-light"
android:gravity="center_vertical"
android:singleLine="false"
android:text="This is example text view that will mess up the height!"
android:textColor="@color/dark_blue"
android:textSize="@dimen/ad_title_text" />
<TextView
android:id="@+id/newsfeed_ad_info_button"
android:layout_width="0px"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_weight="2"
android:background="@drawable/selector_rounded_box_light_blue"
android:fontFamily="sans-serif-light"
android:gravity="center"
android:paddingBottom="@dimen/single_margin"
android:paddingLeft="@dimen/double_margin"
android:paddingRight="@dimen/double_margin"
android:paddingTop="@dimen/single_margin"
android:text="Learn More"
android:textColor="@color/dark_blue"
android:textSize="@dimen/body_text" />
</LinearLayout>
如果这不能解决您的问题,请提供您的 dimen.xml 文件。
希望这会有所帮助...谢谢
问题是第一个TextView
(ID为newsfeed_ad_title
的那个)的身高是match_parent
。这意味着首先 LinearLayout
将计算其首选高度,然后 TextView
将恰好占据该高度。
给第一个 TextView
一个 wrap_content
将解决问题,因为这样 LinearLayout
将首先要求两个 children 计算他们想要的高度,然后相应地设置他自己的.
<TextView
android:id="@+id/newsfeed_ad_title"
android:layout_width="0px"
android:layout_height="wrap_content"
... //the rest is unmodified