android,最后一行textview里面的scrollview略有截止

时间:2014-01-29 11:14:10

标签: android scrollview android-edittext

textview的最后一行略有截止。切断较大和较低的字母(g,j,y ...)。我找到或试过的解决方案都没有,比如添加填充,边距,删除layout_gravity ...... 这种情况发生在更改文本和设置多行时,而不是默认字符串。

以下代码位于FrameLayout内。

<RelativeLayout
android:id="@+id/window"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/black">

<RelativeLayout
    android:id="@+id/action_bar"
    android:layout_alignParentTop="true"
    android:layout_width="fill_parent"
    android:layout_height="46dp"
    android:background="@color/royal_blue" >

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="38dp"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:layout_gravity="center_vertical|left"
        android:layout_margin="4dp"
        android:background="@drawable/ic_launcher" />

    <View
    android:layout_width="fill_parent"
    android:layout_height="1dp"
    android:id="@+id/space"
    android:background="@color/royal_blue"
    android:layout_toLeftOf="@+id/selectLeft"
    android:layout_toRightOf="@+id/imageView" />

    <Button
        android:id="@+id/buttonOptions"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="33dp"
        android:layout_height="33dp"
        android:layout_marginLeft="4dp"
        android:layout_marginRight="4dp"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_gravity="center_vertical|center_horizontal"
        android:background="@drawable/ic_action_overflow"
        android:gravity="right" />


        <TextView
            android:id="@+id/selectLeft"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_toLeftOf="@+id/selectRight"
            android:layout_marginRight="4dp"



            android:gravity="center"
            android:textColor="@color/white"
            android:textSize="20sp" />
        <TextView
            android:id="@+id/selectRight"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_toLeftOf="@+id/buttonOptions"
            android:layout_marginRight="2dp"
            android:layout_marginLeft="4dp"

            android:gravity="center"
            android:textColor="@color/white"
            android:textSize="20sp" />


</RelativeLayout>

<View
    android:id="@+id/action_bar_shadow"                
    android:layout_width="fill_parent"
    android:layout_height="2dp"
    android:layout_below="@+id/action_bar"
    android:background="@color/darker_blue" />

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_marginLeft="4dp"
    android:layout_marginRight="4dp"
    android:layout_marginBottom="4dp"
    android:layout_below="@+id/action_bar_shadow"                
    android:background="@color/black"
    android:orientation="vertical" >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="48dp" >

        <EditText
            android:id="@+id/editText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_gravity="center_horizontal"
            android:layout_marginBottom="4dp"
            android:layout_marginTop="4dp" />
    </RelativeLayout>

    <ScrollView
        android:id="@+id/scrollView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="8dp">

        <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_marginTop="4dp"
        android:layout_marginBottom="10dp"
        android:text="@string/IntroduceWord"
        android:layout_marginLeft="4dp"
        android:textColor="@color/white"
        android:textSize="17sp" />
    </ScrollView>

</LinearLayout>

<ImageView
    android:id="@+id/resize"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:contentDescription="Resize"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:adjustViewBounds="true"
    android:paddingRight="-8dp"
    android:paddingBottom="-0dp"
    android:layout_marginBottom="-8dp"
    android:layout_marginRight="-1dp"
    android:src="@drawable/corner_blue" />
<View
    android:layout_width="fill_parent"
    android:layout_height="1dp"
    android:layout_margin="0dp"
    android:layout_alignParentBottom="true"
    android:background="@color/royal_blue" />

4 个答案:

答案 0 :(得分:10)

对于TextView内的ScrollView,请添加android:paddingBottom="10dip" 它会很完美。您为填充提供任何值。

答案 1 :(得分:0)

尝试ScrollView android:paddingBottom =“0dp”或TextView android:layout_marginBottom =“10dp”

答案 2 :(得分:0)

试试(@ sootie8说的是什么):android:layout_height =“match_parent”

答案 3 :(得分:0)

我认为通过改变布局,你可以做的很少。正如我发现某些方法仅在某些情况下有效。我认为这取决于整个布局层次结构,并不是一个通用的解决方案。我还注意到,特别是当你想要设置为TextView的不同字体时会发生这种情况。

我经过实验和测试的确定镜头方法是,您可以在视图膨胀后在代码中设置字体属性。我假设你在assets / fonts文件夹中有一个你想要的字体。

例如片段:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState)
{
    View view = inflater.inflate(R.layout.fragment_view, container, false);
    TextView tv = (TextView)view.findViewById(R.id.text_view);
    tv.setText("Insert text that needs to be displayed");
    AssetManager assetManager = getContext().getAssets();
    Typeface typeFace = Typeface.createFromAsset(assetManager, "Fonts/OpenSans-Light.ttf");
    tv.setTypeface(typeFace , 0); // 0 is normal font
    tv.setPadding(10,  0, 10, 0); // This is not mandatory
}

在活动中:

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(Resource.Layout.main_activity);
    TextView tv = (TextView)this.findViewById(R.id.text_view);
    tv.setText("Insert text that needs to be displayed");
    AssetManager assetManager = getContext().getAssets();
    Typeface typeFace = Typeface.createFromAsset(assetManager, "Fonts/OpenSans-Light.ttf");
    tv.setTypeface(typeFace , 0); // 0 is normal font
    tv.setPadding(10,  0, 10, 0); // This is not mandatory
}