我试图找出如何在垂直对齐的LinearLayout中添加项目(来自xml drawable / workaround_item.xml)。
<LinearLayout
android:layout_width="100dp"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_alignParentLeft="true"
android:gravity="center_vertical">
<ImageView
android:id="@+id/home_image"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true" />
<TextView
android:id="@+id/home_team"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal"
android:textStyle="bold"
android:textSize="12sp"
android:textColor="#fff"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center_vertical"
android:layout_centerHorizontal="true">
<TextView
android:id="@+id/game_cship"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal|center_vertical"
android:textStyle="bold"
android:textSize="10sp"/>
<TextView
android:id="@+id/game_score"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal"
android:textStyle="bold"
android:textColor="#fff" android:textSize="24sp"/>
<TextView
android:id="@+id/game_date"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal"
android:textStyle="bold"
android:textSize="10sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="100dp"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center_vertical"
android:layout_alignParentRight="true">
<ImageView
android:id="@+id/away_image"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true" />
<TextView
android:id="@+id/away_team"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal"
android:textStyle="bold"
android:textSize="12sp"
android:textColor="#fff" />
</LinearLayout>
在开始时我试图使用ListView,但据我所知,在scrollview中使用listview存在一个错误。我这样做是因为我在视图上有更多的组件应该与列表视图一起滚动。所以我决定删除listview并实现一个简单的线性布局,我将在其他地方添加每个元素等等。
活动的布局如下(layout / workaround.xml),我想开始添加顶栏下面的元素。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:id="@+id/linearid" >
</LinearLayout>
这就是我的java代码:
public class DemoActivity3 extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.workaround);
LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout ll = (LinearLayout) this.findViewById(R.id.linearid);
for(int i = 1; i< 15; i++) {
View item = inflater.inflate(R.layout.workaround_item, null);
TextView x = (TextView) item.findViewById(R.id.game_score);
x.setText("Score" + i);
TextView ht = (TextView) item.findViewById(R.id.home_team);
ht.setText("HomeTeam" + i);
TextView at = (TextView) item.findViewById(R.id.away_team);
at.setText("AwayTeam"+i);
ImageView hi = (ImageView) item.findViewById(R.id.home_image);
hi.setImageResource(R.drawable.gremio);
ImageView ai = (ImageView) item.findViewById(R.id.away_image);
ai.setImageResource(R.drawable.goias);
ll.addView(item,ViewGroup.LayoutParams.WRAP_CONTENT);
}
}
这就是我得到的结果:http://twitpic.com/3562yu
android允许我们这样做吗?如果是这样,Hoe可以添加元素并设置它们的值吗? (这种布局将是足球比赛的结果)。
非常感谢 Ť
答案 0 :(得分:0)
您可以使用LayoutInflater创建xml布局文件的实例。
然后只需在LinearLayout上调用addView。
答案 1 :(得分:0)
ScrollView中没有关于ListView的“错误”,这只是废话。
ListView中有一项功能允许您添加header / footer个视图,这些视图允许您在ListView的常规项目之上和之下放置任何内容。
答案 2 :(得分:0)
凯文说你最好使用带标题的列表视图。标题将与列表一起滚动。
但是,如果您以编程方式向布局添加视图,那么代码应该可以正常工作。尝试使用LayoutParam对象添加它们:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
ll.addView(item, params);