0

我在一个片段中有两个视图。第一个视图是在 onCreateView() 中声明为 weather.xml 的主视图,第二个视图是项目 res/layout/weather_column.xml 中的视图。

我想使用循环以编程方式将weather_column.xml 添加到weather.xml。

最后,它应该像......

在此处输入图像描述

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;

public class WeatherFragment2 extends Fragment {

private static final String TAG = WeatherFragment2.class.getSimpleName();
LinearLayout bottemLL;
LayoutInflater layoutInflater;
LayoutParams params ;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    params = new LayoutParams(
            LayoutParams.WRAP_CONTENT,      
            LayoutParams.WRAP_CONTENT
    );

    params.gravity = Gravity.RIGHT;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.weather, container, false);

    layoutInflater = inflater;
    LinearLayout bottemLL = (LinearLayout) v.findViewById(R.id.bottem_ll);

    addView(bottemLL);


    return v;
}

private void addView(LinearLayout bottemLL2) {
    View v ;

    for (int i = 0; i < 6; i++) {
        Log.e(TAG, "i=========="+i);

        v = layoutInflater.inflate(R.layout.weather_column, null);
        bottemLL2.addView(v, params);
    }
}

}

但我只能在循环后添加一次视图。

请帮助我。谢谢你。

4

3 回答 3

0

我认为您总是添加相同的视图,您应该在循环内创建一个新视图,然后对其进行膨胀。

于 2013-10-08T12:42:35.067 回答
0

尝试这个 :

private void addView(LinearLayout bottemLL2) 
{
    View v ;
    v = layoutInflater.inflate(R.layout.weather_column, null);

    for (int i = 0; i < 6; i++) 
    {
        Log.e(TAG, "i=========="+i);
        bottemLL2.addView(v, params);
    }
}
于 2013-10-08T12:44:45.597 回答
0

您发布的代码确实为您的 LinearLayout 添加了 6 个不同的视图。所以那部分应该没问题。

我想问题是它们太大了,所以它们不能放在同一个容器中。尝试修改底层 XML-s。

你能发送你的布局文件吗?

于 2013-10-08T13:25:49.293 回答