0
ListGrid listGrid = new ListGrid();

listGrid.setWidth100();

listGrid.setFields(f1, f2);
vlayout.addMember(listGrid);

listGrid.setAutoFitFieldsFillViewport(false);
listGrid.setAutoFitFieldWidths(false);
listGrid.setCanAutoFitFields(false);

ListGridField[] listGridFields = listGrid.getFields();
for (ListGridField listGridField : listGridFields) {
  listGridField.setAutoFitWidth(true);
}

この行がありますが、listGrid を配置したウィンドウのサイズを変更すると、フィールドのサイズが変更されず、新しい幅に収まりません。

この listGrid のフィールドの幅をウィンドウに合わせてください。

次に、これを置くと:

ListGridField[] listGridFields = listGrid.getFields();
for (ListGridField listGridField : listGridFields) {
  listGridField.setWidth("100%");
}

初めてウィンドウのサイズを変更すると、問題が解決します。ただし、フィールドのサイズを変更すると、最後のフィールドと listGrid の境界線の間の右側にギャップが生じます。

これを解決する方法はありますか?

概要:
ウィンドウのサイズ変更に合わせて listGrid のサイズを自動的に変更する方法はありますか?
listGrid のフィールドを、常にその親の幅に合う listGrid のサイズに常に合わせる方法はありますか?

この結果が得られる可能性はありますか: http://jsfiddle.net/lnplnp/kJLGd/

4

2 に答える 2

1
listGrid.setWidth("100%");

これを試しましたか?ウィンドウがいっぱいにならない場合は、親の制約を確認してください。

于 2012-10-08T08:23:29.697 に答える
0

最後に私は試しましたlistGridField.setWidth("100%");

したがって、答えは次のとおりです。

ListGridField[] listGridFields = listGrid.getFields();
for (ListGridField listGridField : listGridFields) {
  listGridField.setWidth("100%");
}
listGrid.getField("FIELDNAME").setWidth(30);

私の期待に応えて、少なくとも1つのフィールドに固定幅を割り当てました。

ほとんどの場合は機能しますが、この方法が正しく機能しないことがあります。正確な状況を説明することはできません。機能しない原因が見つかった場合は、この応答を編集します。

于 2012-10-08T13:29:58.880 に答える