我在Fragment中有两个视图。第一个视图是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);
}
}
}
但我可以在循环后只添加一次视图。
请帮我解决这个问题。谢谢。
答案 0 :(得分:0)
我认为你总是添加相同的视图,你应该在循环中创建一个新的视图,然后给它充气。
答案 1 :(得分: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);
}
}
答案 2 :(得分:0)
您发布的代码确实为您的LinearLayout添加了6个不同的视图。那部分应该没问题。
我想问题是它们太大了,所以它们不能放在同一个容器里。尝试修改底层的XML-s。
你能发送你的布局文件吗?