隐藏了Scroll视图中TextView中的第一行

时间:2014-01-13 01:02:51

标签: android textview scrollview

我在ScrollView中使用TextView但是在长文本中我注意到第一行是隐藏的,我无法向上滚动以查看它,如下面的屏幕截图所示

enter image description here

这是我的布局

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="vertical" 
android:id="@+id/tip_details_ll"
android:background = "#c8d26a">

<LinearLayout
    android:id="@+id/titleBar"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:layout_alignParentTop="true"
    android:orientation="horizontal" 
    android:visibility="gone"
    >

    <ImageView
        android:id="@+id/iconImg"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_gravity="center"
        android:layout_margin="5dip"
        android:background="@drawable/ic_launcher" />

    <TextView
        android:id="@+id/titleTxt"
        android:layout_width="140dp"
        android:layout_height="40dp"
        android:gravity="center_vertical"
        android:text="Healthy Tips"
        android:textSize="22dip"
        android:textStyle="bold"
        android:textColor="#4f4f4f"
        android:layout_margin="5dip" />

    <RelativeLayout
        android:id="@+id/closeBtn"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:paddingRight="2dip" >

    </RelativeLayout>
</LinearLayout>



<View
    android:layout_width="fill_parent"
    android:layout_height="5dip"        
    android:background="@drawable/seperator" >
</View>

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_weight="1"
    android:layout_height="240dp"
    android:layout_marginTop="10dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_above="@+id/bottomShadow"
    android:layout_below="@+id/topShadow" >

    <LinearLayout
        android:id="@+id/tips"
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/text"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_gravity="center_horizontal|center"
            android:layout_weight="1.33"
            android:layout_marginTop="10dp"
            android:gravity="center"
            android:scrollbars = "vertical"
            android:maxLines="20"
            android:textStyle="bold"
            android:text="In order to succeed, your desire for success should be greater than your fear of failure.In order to succeed, your desire for success should be greater than your fear of failure"
            android:textColor="#4f4f4f"
            android:textSize="25sp" />

        <TextView
            android:id="@+id/todayDate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:layout_marginTop="10dp"
            android:fontFamily="lucida grande"
            android:gravity="center"
            android:text="Mon, 16 Dec 2013"
            android:textColor="#000000"
            android:textSize="15sp"
            android:visibility="gone" />
    </LinearLayout>

</ScrollView>

<View
    android:layout_width="fill_parent"
    android:layout_height="5dip"
    android:layout_marginTop="10dp"        
    android:background="@drawable/seperator" >
</View>


<LinearLayout
    android:id="@+id/buttons"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:layout_marginBottom="10dp"
    android:layout_marginTop="10dp"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:orientation="horizontal" >

    <RelativeLayout
        android:id="@+id/previous_tip_rl"
        android:layout_width="wrap_content"
        android:layout_height="60dp"
        android:layout_weight="1" >

        <ImageButton
            android:id="@+id/previous_tip"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:layout_marginRight="4dp"
            android:background="@drawable/previous_button"
            android:visibility="gone" />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/share_rl"
        android:layout_width="wrap_content"
        android:layout_height="60dp"
        android:layout_weight="1" >

        <ImageButton
            android:id="@+id/share"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:layout_marginRight="4dp"
            android:background="@drawable/share_button" />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/favorite"
        android:layout_width="wrap_content"
        android:layout_height="60dp"
        android:layout_weight="1" >

        <ImageButton
            android:id="@+id/star"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:background="@drawable/star_off"
            android:layout_marginLeft="4dp" />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/next_tip_rl"
        android:layout_width="wrap_content"
        android:layout_height="60dp"
        android:layout_weight="1" >

        <ImageButton
            android:id="@+id/next_tip"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:layout_marginRight="4dp"
            android:background="@drawable/next_button"
            android:visibility="gone" />
    </RelativeLayout>

</LinearLayout>

<View
    android:layout_width="fill_parent"
    android:layout_height="5dip"
    android:layout_marginTop="10dp"        
    android:background="@drawable/seperator" >
</View>

<Button
            android:id="@+id/dialog_dismiss"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:layout_below="@+id/RelativeLayout1"
            android:text="dismiss"
            android:visibility="gone"
            android:layout_marginRight="4dp"/>

 </LinearLayout>

如何解决这个问题? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

您的XML存在很多问题。这是一个快速摘要和一些更正的代码:

  • android:layout_alignParentTop元素中有LinearLayout,但不执行任何操作。这些应该只在RelativeLayout s
  • 的孩子中
  • android:textSize应始终使用sp单位,而不是dp(有关详情,请参阅Developer's Guide
  • 您似乎有一个名为RelativeLayout的不必要的android:id="@+id/closeBtn",因为它是空的,所以不确定您使用它是什么
  • android:layout_above中有layout_belowScrollView,因为它不是RelativeLayout
  • 的孩子,所以再一次没有做任何事情
  • 您定义LinearLayout某个值的android:layout_weight的任何子视图应该有android:layout_height="0dp",因为布局管理器会以这种方式更快,更优化地布局视图。

但是,您对该文字的具体问题归因于TextView中的LinearLayoutScrollView参数。您使用fill_parent表示视图的高度不正确,您只希望高度与您的内容相匹配。你有不属于他们的边缘和重力。试试这段代码:

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_marginTop="10dp"
    android:layout_weight="1" >

    <LinearLayout
        android:id="@+id/tips"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:maxLines="20"
            android:text="your long text"
            android:textColor="#4f4f4f"
            android:textSize="25sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/todayDate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:layout_marginTop="10dp"
            android:fontFamily="lucida grande"
            android:gravity="center"
            android:text="Mon, 16 Dec 2013"
            android:textColor="#000000"
            android:textSize="15sp"
            android:visibility="gone" />
    </LinearLayout>
</ScrollView>

答案 1 :(得分:-1)

我不使用android所以这是一个解决方法,你可以得到一个大量的字符,可以显示而不会有这个问题。然后如果字符串长度大于该数量,只需在字符串的开头添加一个行跳转;

金额= 300;

if string.length > amount then string = "\r\n" + string;

编辑:如果android删除空行,则添加单个字符,如“ - ”,然后行跳转。