文字被切断了。 Android的

时间:2013-08-23 09:25:51

标签: android android-xml

当我的文字超过一行时,我的文字正在应用中删除。它只发生在hdpi或更少的手机上。任何帮助都会很棒。

代码:

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
                android:background="@drawable/backgroundp" >


<com.example.app.ObservableScrollView
    android:id="@+id/scroll_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <View
            android:id="@+id/placeholder"
            android:layout_width="match_parent"
            android:layout_height="@dimen/sticky_height" />

        <ScrollView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" >

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal"
                    android:paddingTop="10dip" >
                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal" >

                    <TextView
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:gravity="center"
                        android:text="Man what you doing that for. Come on"
                        android:textSize="20sp" />

                    <Button
                        android:id="@+id/button02"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Play" />
                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal" >

                    <TextView
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:gravity="center"
                        android:text="Come on Man. Just Stop, no need for that."
                        android:textSize="20sp" />

                    <Button
                        android:id="@+id/button03"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Play" />
                </LinearLayout>

               Lots of the same thing over and over again. 

          Then


      </LinearLayout>
            </LinearLayout>
        </ScrollView>
    </LinearLayout>
 </com.example.app.ObservableScrollView>

 <Button
    android:id="@+id/button01"
    style="@style/Item.Sticky"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Stop" 
    android:paddingLeft="10dp"
            android:paddingRight="10dp"
                    android:paddingTop="10dp"/>

            </FrameLayout>

还有更多东西,但这是你真正需要看的东西。如果布局高度是包装内容不应该没问题。我猜这是文字大小但不确定?

4 个答案:

答案 0 :(得分:3)

像这样使用padding进行linearlayout ..

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:text="Man what you doing that for. Come on"
                android:textSize="20sp" />

            <Button
                android:id="@+id/button02"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Play" />
        </LinearLayout>

或者使用像这样的textview边距...

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:layout_margin="10dp"
                android:text="Man what you doing that for. Come on"
                android:textSize="20sp" />

            <Button
                android:id="@+id/button02"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Play" />
        </LinearLayout>

答案 1 :(得分:2)

以下是接受的答案。

我认为“真正的”答案是LinearLayout默认情况下baselineAligned属性为true。这意味着它会将孩子与他们定义为“基线”的任何东西对齐。对于TextViews,这是第一行文字的底部,这解释了为什么只有当您有多行文字时问题才会出现。

因此,您可以为包含android:baselineAligned="false"LinearLayout的{​​{1}}设置TextView

有关Button属性的概述,请参阅此文章:TechoTalkative article by Paresh Mayani


你可以使用RelativeLayout而不是那么多带有weight属性的嵌套LinearLayout(由于测量视图边界所需的多次传递会降低性能)。

baselineAligned

我的测试中没有剪切文字。

答案 2 :(得分:1)

根据你想要做的事情,你可以把它分成两行,或者椭圆化。

到ellipsize,添加到那个xml

  android:layout_height="wrap_content"
  android:layout_weight="1"
  android:gravity="center"
  android:text="Come on Man. Just Stop, no need for that."

  android:ellipsize="end"
  android:paddingRight="10dp"

  android:textSize="20sp" />

闯入两行。将singleLine设置为false。

椭圆化最好通过xml完成​​,对于单行并不重要。

答案 3 :(得分:0)

我有同样的问题。发生我正在使用:

android:layout_gravity="center"

不要使用它。使用:

android:gravity="center"

代替。

一些帮助:

android:layout_gravity是View的外部引力。这意味着,要指定视图应触及其父级边框的方向。

android:gravity是该视图的内部重力。这意味着,它的内容应该朝哪个方向对齐。