3

リストアダプターでこのリソースを膨らませようとしています:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:background="#ff0000"
    android:padding="@dimen/spacing_micro" >

    <View android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="10dp"
        android:background="#00ff00"/>
</FrameLayout>

次のコードを使用します。

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewGroup view = (ViewGroup) convertView;
    if (view == null) {
        view = (ViewGroup) LayoutInflater.from(getContext()).inflate(R.layout.myview, parent, false);
    }

    return view;
}

のルートmyviewを高さと幅 200dp で指定していますが、サイズを完全に無視して 0x0 のサイズになります。

コードでカスタムの高さと幅を指定すると、ビューは親のサイズになり、私の200dp好みは無視されます。

ViewGroup.LayoutParams layoutParams = (ViewGroup.LayoutParams) view.getLayoutParams();
layoutParams.height = dpToPx(200);
layoutParams.width = dpToPx(200);
view.setLayoutParams(layoutParams);

Viewのルートが200x200dp で、相対サイズが の子である場合、どうすれば目的を達成できmatch_parentますか?

4

2 に答える 2

2

match_parent に指定された layout_width 属性と layout_height 属性を持つ親レイアウトで FrameLayout をラップしてみてください。次に、その親内で FrameLayout のサイズと重力を設定できます –</p>

于 2013-05-01T05:35:30.020 に答える
1

基本的に、別のレイアウトを追加し、そのレイアウトに高さを指定します。ルート レイアウトの高さを指定するアダプター ビューを使用する場合、機能しません。

于 2013-04-30T12:37:58.853 に答える