Android-动态文本视图-设置页边距不适用?

Android-动态文本视图-设置页边距不适用?,android,android-layout,android-relativelayout,textview,Android,Android Layout,Android Relativelayout,Textview,我正在尝试创建一个动态的网格布局,因为API 10+是使其运行缓慢的部分。我试着让它自动包装。。但最终发现,使用坐标强迫它进入网格模式更容易。当我在创建时进行定位时,这个脚本是自动工作的,但现在我尝试将每个项目作为一个排序循环。因此,如果一个项目被删除,它们都会浮回网格中,中间没有孔。 问题是,布局参数似乎只应用于最后一个对象 以下是一些基本变量和onCreate设置: int screenWidth; int screenHeight; int distStep = 130; int left

我正在尝试创建一个动态的网格布局,因为API 10+是使其运行缓慢的部分。我试着让它自动包装。。但最终发现,使用坐标强迫它进入网格模式更容易。当我在创建时进行定位时,这个脚本是自动工作的,但现在我尝试将每个项目作为一个排序循环。因此,如果一个项目被删除,它们都会浮回网格中,中间没有孔。

问题是,布局参数似乎只应用于最后一个对象

以下是一些基本变量和onCreate设置:

int screenWidth;
int screenHeight;
int distStep = 130;
int leftPad = 20;
int numCols;
int baseID = 0;

android.util.DisplayMetrics metrics = this.getResources().getDisplayMetrics();
screenWidth = metrics.widthPixels;
screenHeight = metrics.heightPixels;
numCols = (int) (screenWidth - leftPad) / distStep;
int scrRemain = screenWidth - ((numCols * distStep) + leftPad);
distStep += (int) scrRemain / numCols;
然后转到主功能以添加:

public void addObjToLayout() {
    RelativeLayout relLay = (RelativeLayout) this.findViewById(R.id.mainWindow);
    for(int i = 1; i <= currQuantity; i++){
        TextView tv=new TextView(this);
        tv.setTextSize(40);
        tv.setId(baseID + i);
        tv.setPadding(24, 4, 24, 4);
        tv.setBackgroundColor(0x110000FF);
        tv.setText(String.valueOf(baseID + i));     //Val for debugging
        tv.setTextColor(0xFFFFFFFF);
        relLay.addView(tv);
    }
    baseID += currQuantity;
    sortLayout();
  }
public void addObjToLayout(){
RelativeLayout relLay=(RelativeLayout)this.findViewById(R.id.mainWindow);

对于(inti=1;iMargin,边距意味着它将在上一个视图和当前视图之间设置一个间隙。 将view1、view2和view3添加到栅格布局时,如果在某个时间点删除view2,则view3的边距将根据view1设置。因此,它不会在view2上留下空白。与其在运行时删除view2,不如将view2的背景设置为null,并将文本设置为空,如下所示

textView.setBackground(null);
textView.setText("");

因此视图仍然可用,但看起来已被删除。

开始使用扩展baseAdapter查看GridView。看起来很有希望:

更多信息(见第2页):

如果你想做一个网格布局,为什么不直接使用它呢?当我最初尝试添加它时,它告诉我它与我的基本API级别(10)不符。文档说这是API 1,但Eclipse对我的兼容性大喊大叫。这很奇怪。我个人没有使用
GridView
,但不幸的是,我没有什么帮助。smacks head刚刚意识到有GridView(API 1)和GridLayout(API 14)。我将对此进行更多的研究。谢谢!谢谢,我实际上并不知道。我将在未来记住这一点!在可能的范围内,但我也计划在每个textview的角落放置一个定位的imageView和另一个textview标签。所以这并不是那么简单。
textView.setBackground(null);
textView.setText("");