【发布时间】:2014-01-10 10:56:09
【问题描述】:
我正在向 TableLayout (TableRow) 添加按钮,并且我希望每行顶部有 10 个按钮,但是当使用 API16(可能是所有 API10 > 但我没有对此进行测试)时,它只是在 5 个按钮(我认为太大了,这就是为什么我在它们上尝试 wrap_content,也尝试填充到 1,1,1,1 并且它在 API 10 上工作,使它们非常小,但在 API16 上没有发生任何事情)这发生在模拟器和我的设备上也是。
这是我想要的结果:http://img10.imageshack.us/img10/2243/fe32.png (API10)
这是我得到的结果:http://i.imgur.com/VpH8Hu1.png (API16)
java:
public class Keyboard extends Activity implements OnClickListener{
TableLayout TblLayout;
TableRow tr;
String[] numRow = {"0","1","2","3","4","5","6","7","8","9"};
String[] engKeys = {"q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","z","x","c","v","b","n","m"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_keyboard);
TblLayout = (TableLayout) findViewById(R.id.tblLayout);
createRows(numRow);
createRows(engKeys);
}
public void createRows(String[] keyValues){
int i = 0;
while (i < keyValues.length) {
if (i % keyValues.length == 0 || i % 10 == 0) {
tr = new TableRow(this);
TblLayout.addView(tr);
tr.setLayoutParams(new TableRow.LayoutParams(
TableRow.LayoutParams.WRAP_CONTENT,TableRow.LayoutParams.WRAP_CONTENT));
}
Button btn = new Button(this);
btn.setText(keyValues[i]);
btn.setGravity(1);
btn.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT ,TableRow.LayoutParams.WRAP_CONTENT));
btn.setId(i);
btn.setBackgroundColor(0xFFFFFF);
btn.setOnClickListener(this);
tr.addView(btn);
i++;
}
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
}
xml:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/tblLayout"
>
</TableLayout>
【问题讨论】:
标签: android xml android-button android-tablelayout