我添加按鈕到TableLayout(TableRow),我想每行有10個按鈕的上衣,但是當使用API16(也許所有的API10>但我沒有測試),它只是在5個按鈕之後切斷(我假設的太大,這就是爲什麼我試着對它們進行wrap_content,也嘗試填充到1,1,1,1,並且它在API 10上工作,使它們非常小但沒有發生在API16上)發生這種情況在模擬器和我的設備上。Android的setLayoutParams不工作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>
我會做到這一點,如果我有,但爲什麼工作在我的代碼,較低的空氣污染,但不是在更高的嗎?我無法找到任何地方表明上述任何功能被刪除或棄用與newwer API的 – Shay
你使用相同的設備或不同? – Niko
我已經在我的真實設備SGS2 4.1.2和Galaxy mini 2.3.3上測試過ADT的仿真器(Nexus one 4.1.2 API16和2.3.3 API10),測試結果相同(適用於所有2.3。 3設備,但不在4.1.2設備上) – Shay