0

この質問は他の人のだまされているように聞こえるかもしれませんが、ウィジェットでこれを行おうとしているという事実は、提案されたソリューションを他の場所で使用する私の能力を大幅に制限します.

要約: リストの一番上の項目の上と一番下の項目の下にスペースを追加して、タイトル バーとバーの下端から離して配置したいと考えています。

基本的に、私はAndroid の上部の ListView 項目の上 (および最後の下) にマージンを追加するのと同じ問題を解決しようとしていますが、 setHeader() などを行うために ListView オブジェクトへの参照に依存することはできません。

Androidウィジェットでこれを行うことは本当に不可能ですか?

4

3 に答える 3

0

ListView 用のアダプターを使用していると想定しているため、追加のリストビュー レイアウトを拡張しています。メソッドでは、getViewリスト項目の位置 (0 と最後) に従って、下部または上部のパディングを配置します。

于 2012-09-14T06:10:48.933 に答える
0

したがって、ここにはアダプターのオーバーライド機能があります。この機能から、マージン、高さを変更または指定できます。ここでは、使用しているレイアウトのオブジェクトを取得する必要があり、これからレイアウト属性を変更できます。

 @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            if (convertView == null) {
                LayoutInflater mInflater = (LayoutInflater) context
                        .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
                convertView = mInflater.inflate(R.layout.drawer_list_item, null);
            }
            if (position == 0) {//for first row



                ImageView imgIcon = (ImageView) convertView.findViewById(R.id.icon);
                TextView txtTitle = (TextView) convertView.findViewById(R.id.title);

                RelativeLayout.LayoutParams relate = new RelativeLayout.LayoutParams(200, 200);
                relate.setMargins(150, 0, 0, 0);

                imgIcon.setLayoutParams(relate);
                RelativeLayout.LayoutParams text = new RelativeLayout.LayoutParams(300, 100);
                text.setMargins(150, 180, 0, 0);


                }
    return convertView ;

//お役に立てば幸いです

于 2014-04-04T06:21:37.357 に答える
-1

getView() 中のアダプタで、それが位置 0 または .getLength() であるかどうかを確認し、そこで convertView に LayoutParams を設定します。

于 2012-09-14T18:43:13.730 に答える