ScrollView正在切断文本的开头

时间:2016-05-31 20:37:18

标签: android android-layout scrollview android-view android-tablelayout

我在另一个问题中遵循了Aby编写的这段代码:https://stackoverflow.com/a/22682248/5915747

我的文字的开头正在我的屏幕左侧被切断。我缺少相当多的信息,不知道如何修复它,我已经尝试了一些对别人有用的东西,但它对我没用。

popup.xml

<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollviewtest"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
tools:context="com.info.PopupActivity"
android:background="#f0f0f0"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true">

  <HorizontalScrollView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:id="@+id/rel_layout"
        android:orientation="vertical">

        <TableLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/table_layout"
            android:background="#80000000"
            android:layout_centerHorizontal="true">

        </TableLayout>

    </RelativeLayout>

  </HorizontalScrollView>

</ScrollView>

init方法:

 public void init() {

    View popupview = getLayoutInflater().inflate(R.layout.popup, null);
    popupWindow = new PopupWindow(
            popupview, LinearLayout.LayoutParams.MATCH_PARENT,
            LinearLayout.LayoutParams.MATCH_PARENT
    );
    popupWindow.showAtLocation(popupview, Gravity.CENTER, 0, 0);
    popup_shown[0] = true;

    TableLayout tableLayout = (TableLayout) popupview.findViewById(R.id.table_layout);

    TableRow row0 = new TableRow(this);

    TextView text0 = new TextView(this);
    text0.setText("Test Header1");
    row0.addView(text0);

    TextView text1 = new TextView(this);
    text1.setText("Test Header2");
    row0.addView(text1);

    TextView text2 = new TextView(this);
    text2.setText("Teset Header3");
    row0.addView(text2);

    TextView text3 = new TextView(this);
    text3.setText("Test Header4");
    row0.addView(text3);

    TextView text4 = new TextView(this);
    text4.setText("Test Header5");
    row0.addView(text4);

    tableLayout.addView(row0);

    for (int i = 0; i < 8; i++) {
        TableRow tableRow = new TableRow(this);
        TextView tv0 = new TextView(this);
        tv0.setGravity(Gravity.CENTER);
        tv0.setText("long test field 0");
        tableRow.addView(tv0);

        TextView tv1 = new TextView(this);
        tv1.setGravity(Gravity.CENTER);
        tv1.setText("long test field 1");
        tableRow.addView(tv1);

        TextView tv2 = new TextView(this);
        tv2.setGravity(Gravity.CENTER);
        tv2.setText("long test field 2");
        tableRow.addView(tv2);

        TextView tv3 = new TextView(this);
        tv3.setGravity(Gravity.CENTER);
        tv3.setText("long test field 3");
        tableRow.addView(tv3);

        TextView tv4 = new TextView(this);
        tv4.setGravity(Gravity.CENTER);
        tv4.setText("long test field 3");
        tableRow.addView(tv4);


        tableLayout.addView(tableRow);
    }

}

文本视图的字符串越长,它就越多,但是它是一个水平滚动视图,所以它应该从屏幕的开头开始,并在结尾添加长度,这是可滚动的,对吗? / p>

最终看起来与纵向/纵向中的当前字符串相似: Vertical View

这是水平中的样子,它似乎已修复,因为我的屏幕足够大,可用于数据: Horizontal View

如果您有任何疑问,请询问!

通过向scrollview添加填充解决了这个问题。这似乎是一个常见的android bug。

1 个答案:

答案 0 :(得分:0)

我不知道它是否有效但请尝试删除

  

机器人:layout_gravity =&#34;中心&#34;

来自相对布局的