Android Scrollview赢得';我不能展示一切

Android Scrollview赢得';我不能展示一切,android,scrollview,programmatically-created,Android,Scrollview,Programmatically Created,我将视图添加到Scrollview(LinearLayout)中,但它不会显示所有内容。例如,如果我添加10个视图(TextView和EditView),它将显示4个,如果我添加更多视图,如200个,它将达到131个,但我可以看到下一个视图的开头 这是XML: <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://sche

我将视图添加到Scrollview(LinearLayout)中,但它不会显示所有内容。例如,如果我添加10个视图(TextView和EditView),它将显示4个,如果我添加更多视图,如200个,它将达到131个,但我可以看到下一个视图的开头

这是XML:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
tools:context=".FirstActivity"
tools:layout_editor_absoluteY="25dp">

<TextView
    android:id="@+id/textView"
    android:layout_width="95dp"
    android:layout_height="36dp"
    android:layout_marginEnd="16dp"
    android:layout_marginLeft="16dp"
    android:layout_marginRight="16dp"
    android:layout_marginStart="16dp"
    android:layout_marginTop="16dp"
    android:text="TextView"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<ScrollView
    android:id="@+id/scrollView3"
    android:layout_width="362dp"
    android:layout_height="0dp"
    android:layout_marginBottom="16dp"
    android:layout_marginEnd="16dp"
    android:layout_marginLeft="16dp"
    android:layout_marginRight="16dp"
    android:layout_marginStart="16dp"
    android:layout_marginTop="16dp"
    app:layout_constraintBottom_toTopOf="@+id/button4"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.47"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/textView"
    android:paddingBottom="10dp">

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

<Button
    android:id="@+id/button4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="16dp"
    android:layout_marginEnd="16dp"
    android:layout_marginLeft="16dp"
    android:layout_marginRight="16dp"
    android:layout_marginStart="16dp"
    android:text="Button"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent" />
</android.support.constraint.ConstraintLayout>

这就是java:

public class FirstActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_first);

    LinearLayout layout = findViewById(R.id.layout);
    int i = 1;
    int a = 1;
    int noc = 500;
    int heightTV = 100;
    int heightET = 10;
    int widthTV = 100;
    int widthET = 200;
    do{
        TextView textView = new TextView(this);
        textView.setId(i);
        String number = Integer.toString(a)+".-";
        textView.setY(heightTV);
        textView.setX(widthTV);
        textView.setText(number);
        layout.addView(textView);
        EditText editText = new EditText(this);
        editText.setId(i);
        editText.setHint("Example: 567-ZTY");
        editText.setY(heightET);
        editText.setX(widthET);
        editText.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        layout.addView(editText);
        i++;
        a++;
        heightTV = heightTV + 100;
        heightET = heightET + 100;
    } while (i<=noc);
}
public class FirstActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_优先);
LinearLayout布局=findViewById(R.id.layout);
int i=1;
INTA=1;
int noc=500;
内部高度tv=100;
int高度t=10;
int-widthTV=100;
int-widthET=200;
做{
TextView TextView=新的TextView(此);
setId(i);
字符串编号=整数;
textView.setY(高度电视);
textView.setX(宽度电视);
textView.setText(数字);
layout.addView(textView);
EditText EditText=新的EditText(本);
editText.setId(i);
setHint(“示例:567-ZTY”);
editText.setY(heightET);
editText.setX(宽度集);
editText.setLayoutParams(新的LayoutParams(LayoutParams.WRAP_内容,LayoutParams.WRAP_内容));
layout.addView(editText);
i++;
a++;
heightTV=heightTV+100;
高度=高度+100;

}而(i将此属性添加到滚动视图中:

     android:fillViewport="true"

你的身高也是“0dp”。我知道您为什么要这样做,但一定要检查它所约束的视图,并确保有足够的空间来显示您试图显示的内容。

所以我不知道为什么,但似乎如果我在循环之外添加了一些内容,一旦完成工作,scrollview通常停止,就会显示缺少的内容。

新守则是:

for (int i = 1; i<=noc; ++i){
        TextView textView = new TextView(this);
        textView.setId(i);
        String number = Integer.toString(a)+".-";
        textView.setY(heightTV);
        textView.setX(widthTV);
        textView.setText(number);
        layout.addView(textView);
        EditText editText = new EditText(this);
        editText.setId(i);
        editText.setHint("Example: 567-ZTY");
        editText.setY(heightET);
        editText.setX(widthET);
        editText.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        layout.addView(editText);
        a++;
        heightTV = heightTV + 100;
        heightET = heightET + 100;
        Button button = findViewById(R.id.button4);
        button.setText(Integer.toString(i));
    }
    heightTV = heightTV + 100;
    TextView textV = new TextView(this);
    textV.setHeight(heightTV);
    textV.setText("");
    layout.addView(textV);

for(int i=1;iI)添加了属性,但它根本不影响:/