1
プログラムでTableLayoutを作成しようとしていますが、最初の行calling
は問題ありません。しかし、私の2行目のgeo
では、ボタンopenGeo
が画面の右端から外れていますが、最初の行と同じ重み付けロジックを使用しようとしましたが(Button
は必要なスペースをとります。EditText
は残りを取る)TableLayoutを使用すると、Buttonがエッジから外れます
IもEditText
Sからウェイトを取り外し
- を試してみた - >同じ問題
- ボタン
openGeo
に重みを追加 - 順番を並べ替え>同じ問題 - (ボタンが来るまず、その後、
EditText
S) - >オフに行くエッジの問題を修正しますが、私は最後
のボタンをしたいので、私は順番を並べ替えるための画面がこれらView
秒のすべての5を支持することが可能である知っていますEditText
をエッジから押し出すことはありません。どうすればこの注文を維持できますか?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_interact_ui);
TableLayout layout = (TableLayout)findViewById(R.id.interactUILayout);
TableRow calling = new TableRow(this);
TableRow geo = new TableRow(this);
final EditText number = new EditText(this);
number.setInputType(EditorInfo.TYPE_CLASS_PHONE);
number.setHint("###-###-####");
Button call = new Button(this);
call.setText("Call");
call.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
call(number.getText().toString());
}
});
final EditText address = new EditText(this);
address.setHint("Address");
final EditText street = new EditText(this);
street.setHint("Street");
final EditText city = new EditText(this);
city.setHint("City");
final EditText state = new EditText(this);
state.setHint("State");
Button openGeo = new Button(this);
openGeo.setText("Maps");
openGeo.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
openGeo(address.getText().toString(),street.getText().toString(), city.getText().toString(), state.getText().toString());
}
});
calling.addView(number, new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT, 1f));
calling.addView(call);
geo.addView(address, new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT, 1f));
geo.addView(street, new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT, 1f));
geo.addView(city, new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT, 1f));
geo.addView(state, new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT, 1f));
geo.addView(openGeo);
layout.addView(calling);
layout.addView(geo);
}
私は帰宅したらあなたの提案をお試ししますが、この背後にある理由を説明してもらえますか?なぜなら、もし私がそうでなければ、スペースがなくなってしまう理由がわからないからです。また、ウェイトを使用する場合は、幅が0になるように、今後もこのルールに常に注意する必要がありますか?おかげさまで –