繁体   English   中英

通过从底部到顶部在相对布局(或linearlayout)中添加按钮来增加滚动视图

[英]Increasing scrollview by adding buttons in a relativelayout (or linearlayout ) from bottom to top

真的可以为此提供一些帮助。

我试图从屏幕底部的单个按钮开始。 单击我的counter ++按钮时,将在屏幕底部的按钮上方动态创建第二个按钮。 我能够做到这一点,问题是当按钮到达屏幕顶部时,滚动视图的高度不会增加。 请在下面查看我的示例。

我假设只有在将项目添加到当前视图下方时,滚动视图才会增加,尽管是这种情况,我无法从底部向上创建几个按钮吗?

这是我的代码。

XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:context="com.example.bbetzner.ttt.Map">

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true"
    >

    <RelativeLayout
        android:id="@+id/layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"

        >

    <Button
        android:id="@+id/count"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="count++"

        />

    <Button
        android:id="@+id/floor0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:text="0"

        />

    </RelativeLayout>
</ScrollView>
</RelativeLayout>

Java:

public void addfloor(){

    Button myButton = new Button(this);
    myButton.setText(""+floor);
    margincount += 100;

    RelativeLayout ll = findViewById(R.id.layout);
    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    lp.addRule(RelativeLayout.ABOVE, R.id.floor0);
    lp.addRule(RelativeLayout.CENTER_HORIZONTAL);
    lp.bottomMargin = margincount;
    ll.addView(myButton, lp);

}

我也尝试过在线性布局中执行此操作,以查看scrollview是否会增加,但是我不知道如何在线性布局中从下至上堆叠按钮。 :S

在此先感谢,你们真棒!

这是您的设计部分快乐的编码.....

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>

   <LinearLayout
        android:id="@+id/layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        >

        <Button
            android:id="@+id/count"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="count++"

            />
        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fillViewport="true"
            >
        <LinearLayout
            android:id="@+id/layout1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:gravity="center"

            >


            <Button
                android:id="@+id/floor0"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:text="0"

                />
            <Button
                android:id="@+id/floor1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:text="7"

                />
            <Button
                android:id="@+id/floor2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:text="6"

                />
            <Button
                android:id="@+id/floor3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:text="5"

                />
            <Button
                android:id="@+id/floor4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:text="4"

                />
            <Button
                android:id="@+id/floor5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:text="0"

                /><Button
            android:id="@+id/floor6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:text="3"

            /><Button
            android:id="@+id/floor7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:text="2"

            />
            <Button
                android:id="@+id/floor8"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:text="1"

                />
            <Button
                android:id="@+id/floor9"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:text="0"

                />


        </LinearLayout>
        </ScrollView>
    </LinearLayout>

@Texas使用以下代码来实现所需的功能:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content">


<LinearLayout
    android:id="@+id/layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <Button
        android:id="@+id/count"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="count++" />

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        android:scrollbars="vertical">

        <LinearLayout
            android:id="@+id/lladdViews"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:gravity="bottom"
            android:orientation="vertical">

            <Button
                android:id="@+id/floor0"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:gravity="center"
                android:text="0" />
        </LinearLayout>
    </ScrollView>

</LinearLayout>

这是Java文件:

public class SampleActivity extends Activity {
    LinearLayout lladdViews;
    Button count;
    int floor = 0;
    private int margincount = 0;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sample_activity);
        lladdViews = (LinearLayout) findViewById(R.id.lladdViews);
        count = (Button) findViewById(R.id.count);
        count.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                addfloor();
            }
        });
    }


    public void addfloor() {

        Button myButton = new Button(this);
        myButton.setText("" + floor);
        margincount += 10;

        RelativeLayout ll = new RelativeLayout(this);
        RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
        lp.addRule(RelativeLayout.ABOVE, R.id.floor0);
        lp.addRule(RelativeLayout.CENTER_HORIZONTAL);
        lp.bottomMargin = margincount;
        ll.addView(myButton, lp);
        lladdViews.addView(ll);
    }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM