TextView大小和滚动问题(Android)

时间:2014-08-01 08:32:42

标签: android textview

我在ScrollView中只有一个TextView,它可以包含不同的文本。文本的大小也总是不同的。问题是在不同的屏幕上,这个TextView可以完全放在屏幕上。我想在屏幕上垂直居中。如果文字很小,它可以正常工作。但是如果文本长度大于屏幕可以包含的长度,它只会丢失文本的开头,也会在文本出现后丢失奇怪的空白区域。我该如何解决这个问题?

textview的属性gravity只是水平居中文本,但是layout_gravity做了我上面描述的奇怪的事情。如果我删除layout_gravity,则所有文字看起来都不错,但它位于滚动视图的顶部=(

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_above="@id/llbuttons"
    android:layout_alignParentTop="true"
    android:layout_margin="15dp" >

    <TextView
        android:id="@+id/textview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_gravity="center_vertical"
        android:textSize="36sp"
        android:textStyle="bold" />
</ScrollView>

3 个答案:

答案 0 :(得分:1)

您无需ScrollView需要在xml android:maxLinesandroid:scrollbars="vertical"中添加2个属性

<强> XML

<TextView
        android:id="@+id/babySitterDescTxtView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="18dp"
        android:maxLines="3"
        android:paddingLeft="50dp"
        android:paddingRight="50dp"
        android:scrollbars="vertical"
        android:text="Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry&apos;s standard dummy text ever since the 1500s."
        android:textColor="@color/fragment_page_txt_color"
        android:typeface="sans" />
JAVA

中的

babySitterDescTxtView = (TextView) findViewById(R.id.babySitterDescTxtView);
babySitterDescTxtView.setMovementMethod(new ScrollingMovementMethod());

答案 1 :(得分:0)

TextView可以滚动文本本身。您不需要使用ScrollView:

<TextView 
    android:text="Some text..." 
    android:id="@+id/my_textview_id" 
    android:textSize="20sp"
    android:textColor="#FFF"
    android:layout_width="match_parent" 
    android:layout_height="match_parent"
    android:gravity="center"  
    android:scrollbars="vertical">

答案 2 :(得分:0)

请尝试这种方式,希望这有助于您解决问题。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="10dp"
    android:gravity="center">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">

        <TextView
            android:id="@+id/textview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:textSize="36sp"
            android:layout_gravity="center"
            android:textStyle="bold" />
    </ScrollView>
    <Button
        android:id="@+id/llbuttons"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:text="Button"/>
</LinearLayout>