android - 我可以有一个有很多 relativeLayouts 的 scrollView

标签 android scrollview

我正在编写一个 Activity ,它在顶部有一个 linearLayout,在下半部分有一个 scrollView。 scrollView 在运行时可以获得多达 30 个 relativeLayouts。这可能吗? 我已尝试使用以下代码,但出现错误:

public void onFocusChange(View v, boolean hasFocus) {
    // TODO Auto-generated method stub
    if(hasFocus==false){
    switch(v.getId()){

    case 6:

        main[no]=new RelativeLayout(this);
        mainParams=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT );
        main[no].setLayoutParams(mainParams);
        mainLayout.addView(main[no]);
        svParams=new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
        sv.setLayoutParams(svParams);

        items[no]=new EditText(this);
        rates[no]=new EditText(this);
        quants[no]=new EditText(this);

        items[no].setHint("Enter item name");
        rates[no].setHint("Rate");
        quants[no].setHint("Quantity");

        RelativeLayout.LayoutParams etParams=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        RelativeLayout.LayoutParams rateParams=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        RelativeLayout.LayoutParams quantParams=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

        items[no].setId(id++);
        quantParams.addRule(RelativeLayout.RIGHT_OF, (id-1));
        quants[no].setId(id++);
        pos=id;
        rateParams.addRule(RelativeLayout.RIGHT_OF, (id-1));
        rates[no].setId(id++);          

        etParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);

        items[no].setLayoutParams(etParams);
        rates[no].setLayoutParams(rateParams);
        quants[no].setLayoutParams(quantParams);

        rates[no].setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
        quants[no].setInputType(InputType.TYPE_CLASS_NUMBER);
        main[no].addView(items[no]);
        main[no].addView(rates[no]);
        main[no].addView(quants[no]);
        quants[no].setOnFocusChangeListener(this);
        sv.addView(main[no]);
        no++;
        break;

每个相对布局包含 3 个彼此相邻的 editText。

最佳答案

ScrollView 只能有一个 child 。添加 LinearLayout,它将包含您所有的 RelativeLayout,并将 LinearLayout 添加到 ScrollView

 <ScrollView ...

     <LinearLayout ...

         <RelativeLayout1 ... />

         <RelativeLayout2 ... />

      </LinearLayout>
  </ScrollView>

但最简单的方法是使用 ListView 小部件,它会重新使用您的 View

关于android - 我可以有一个有很多 relativeLayouts 的 scrollView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18017900/

相关文章:

android - 显示键盘时,viewpager fragment 内的 ScrollView 不会滚动

android - Android Studio 中的 float 提示标签在按下之前不显示

c# - 如何保护手游的时效存档

android - 从sdcard Android Mediaplayer播放音频

ios - 单击内部选项卡时保持 ScrollView 位置(刷新内部数据)

android - ScrollView 内的线性布局,分布均匀

java - 有效获取对象的属性或强制声明类属性

安卓相机 : Does it have a unique package name?

android - 子 ScrollView 拦截/阻止/吞噬对其父 View 的点击

android - 在 ScrollView 中拖放