1

我想要做的是制作一个居中的框,其中包含一些文本简介和一个按钮以继续。通过使用 wrap_content,我能够使框居中并且不占用整个屏幕,但是简介有几行长,并且包含它们的文本视图没有显示所有文本。这是我所拥有的:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:background="@color/background"
    android:orientation="vertical" >


    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_gravity="center"
        android:background="@color/content"
        android:padding="10dp"
     >

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center"
            android:text="@string/title"
            android:textColor="@color/black" />

       <TextView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="@string/teacher_head" 
            android:textColor="@color/black" />

        <TextView
            style="@style/home_blurb"
        android:text="@string/teacher_blurb" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="@string/student_head"
            android:textColor="@color/black"  />

        <TextView
        android:text="@string/student_blurb" 
            style="@style/home_blurb" />


        <Button
            android:layout_width="wrap_content"
        android:layout_height="0dip"
        android:layout_gravity="center"
        android:layout_weight="0.1"
        android:gravity="center"
            android:paddingTop="5dp"
            android:text="@string/go_to_app" />


</LinearLayout>
</LinearLayout>

home_blurb 在哪里

<style name="home_blurb" parent="android:TextAppearance">
    <item name="android:paddingBottom">5dp</item>
    <item name="android:textColor">@color/black</item>
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">fill_parent</item>
    <item name="android:layout_weight">1</item>
    <item name="android:textSize">12dp</item>     
</style>

内部 LinearLayout 将自身设置为按钮的宽度,我可以接受,但是有没有办法让它足够宽以包含所有文本而不设置特定的像素测量值(如 html/css 中的屏幕百分比)?

4

2 回答 2

1

我遇到过同样的问题。碰巧我正在使用:

android:layout_gravity="center"

不要用那个。利用:

android:gravity="center"

反而。也许您应该在被切断的 TextView 上使用 android:gravity="center" 。

一些帮助:

android:layout_gravity 是视图的外部重力。这意味着,要指定 View 应该触摸它的父边框的方向。

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

于 2015-04-02T17:39:55.647 回答
0

你可以在第二次使用LinearLayout

android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginBottom="20dp"
android:layout_marginTop="20dp"

这样无论您的文本有多大,您的布局每次都将保持在中心并在其周围留出一些空间。

如果你愿意,你可以给每个元素滚动条,你可以通过为每个元素添加特定的最大高度来做到这一点,那么你可以这样做

android:scrollbars="vertical"并在代码中textview.setMovementMethod(new ScrollingMovementMethod());

于 2012-06-08T19:38:48.603 回答