TextView在LinearLayout中被切断了

时间:2015-07-03 04:31:28

标签: java android android-layout textview android-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>

结果如下:

enter image description here

(不要注意上面的阴影。我裁剪图像,阴影来自动作栏)

线性布局的高度由较小的textview而不是较大的textview确定。为什么?我该如何修复呢?提前致谢

5 个答案:

答案 0 :(得分:4)

  

制作textview的高度wrap_content它将解决问题

android:id="@+id/newsfeed_ad_title"
    android:layout_width="0px"
    android:layout_height="wrap_content"

答案 1 :(得分:1)

试试这个,

<?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文件。

希望这会有所帮助......谢谢

答案 2 :(得分:0)

你想让左侧textview(ID为newsfeed_ad_title)不能正确剪切吗?将android:layout_height更改为&#34; wrap_content&#34;

答案 3 :(得分:0)

尝试设置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

答案 4 :(得分:0)

问题是第一个boost::asio(标识为TextView的人)的高度为newsfeed_ad_title。这意味着首先match_parent将计算其首选高度,然后LinearLayout将完全占据该高度。
给第一个TextView wrap_content将解决问题,因为这样TextView将首先要求两个孩子计算他们想要的身高,然后相应地设置自己的身高。

LinearLayout