android setMargins

时间:2012-09-03 13:51:44

标签: android padding margins

我正在开发一些类似于默认应用程序的秒表应用程序,我这样做只是为了确保我拥有基本知识。我的问题:在按下Lap按钮后,会创建一个新的布局,并且tvDisplay的当前值(显示计时器的textview)将被放置在一个新的textview中(参见下面的代码)。它有效,但我想将动态添加的布局彼此分开,以使整个事物看起来更好。我试图为nlap LinearLayout设置填充但它不起作用。我也没有找到setMargins()方法..如何在动态添加的线性布局之间添加一些自由空间dp?

XML:

<ScrollView
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/LapHost"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginBottom="25dp"
            android:layout_marginTop="20dp" >

             <LinearLayout
        android:id="@+id/lap"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

                 </LinearLayout>
        </ScrollView>

的java:

    public void LapClick(View view) {

    LinearLayout lap = (LinearLayout) findViewById(R.id.lap);
    TextView disp = (TextView) findViewById(R.id.tvDisplay);
    TextView ms = (TextView) findViewById(R.id.timerMs);

    ScrollView.LayoutParams layoutParams = new ScrollView.LayoutParams(
            ScrollView.LayoutParams.MATCH_PARENT,
            ScrollView.LayoutParams.WRAP_CONTENT);

    LinearLayout nlap = new LinearLayout(this);
    nlap.setOrientation(LinearLayout.VERTICAL);
    nlap.setLayoutParams(layoutParams);
    nlap.setBackgroundColor(Color.parseColor("#C7C7C7"));

    TextView value = new TextView(this);
    value.setText(disp.getText().toString() + ms.getText().toString());
    value.setTextColor(Color.parseColor("#A60101"));
                value.setGravity(Gravity.CENTER);

    nlap.addView(value);
    lap.addView(nlap);

}

2 个答案:

答案 0 :(得分:1)

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(0, 10, 0, 0); // 10 px from top

答案 1 :(得分:0)

您可以按LayoutParams

设置保证金
layoutParams.topMargin = 25;