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