ScrollView 正在切断文本的开头

ScrollView is cutting off beginning of text

我在另一个问题中遵循了Aby编写的这段代码:

我的文字开头在屏幕左侧被截断了。我遗漏了很多信息并且不确定如何解决它,我已经尝试了对其他人有用的所有方法但对我不起作用。

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>

初始化方法:

 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);
    }

}

文本视图的字符串越长,裁剪越多,但是它是水平滚动视图,所以它应该从屏幕的开头开始并在末尾添加长度,这是可滚动的,对吧?

这是 vertical/portrait 方向 当前字符串的最终结果: Vertical View

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

有什么问题欢迎提问!

通过向滚动视图添加填充解决了这个问题。这似乎是一个常见的 android 错误。

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

android:layout_gravity="center"

来自相对布局的行