就像我说的,我想为Android LinearLayout添加视图,但它不起作用。我究竟做错了什么。我希望像这样插入它们:
[ Click Me ]
added_view_01
added_view_02
added_view_03
etc.
以下是 activity_main.xml
的内容<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click Me"
android:onClick="addRow"/>
<LinearLayout
android:id="@+id/my_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="bottom"/>
</LinearLayout>
这就是我对MainActivity.java的看法。
public class MainActivity extends AppCompatActivity {
private static int iterator = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void addRow(View view){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US);
StringBuffer stringBuffer = new StringBuffer();
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
LinearLayout linearLayout = (LinearLayout)findViewById(R.id.my_layout);
TextView textView = new TextView(this);
textView.setLayoutParams(layoutParams);
textView.setTextSize(34);
stringBuffer.append("Timestamp: ");
stringBuffer.append(sdf.format(new Date()));
textView.setText(stringBuffer.toString());
linearLayout.addView(textView, iterator);
iterator++;
}
}
当然,如果我将linearLayout.addView(textView, iterator);
更改为linearLayout.addView(textView, 0);
,它会替换位置0处的视图,但它永远不会附加新视图。如何让它继续追加新视图?
由于
答案 0 :(得分:1)
你至少应该看到一个视图。但是当你添加它时它会占用整个屏幕。
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
尝试将height参数更改为WRAP_CONTENT
。
答案 1 :(得分:1)
尝试改变你的这一行:
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);