当我的文字超过一行时,我的文字正在应用中删除。它只发生在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>
还有更多东西,但这是你真正需要看的东西。如果布局高度是包装内容不应该没问题。我猜这是文字大小但不确定?
答案 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是该视图的内部重力。这意味着,它的内容应该朝哪个方向对齐。