如果第一行填充,如何在按钮单击后在第二行添加图像

时间:2017-03-31 08:20:19

标签: android image

我希望按行按顺序添加按钮,如果第一行已填充则应从下一行开始。

我已经使用线性布局水平定义了滚动视图,并且它是水平添加但是我希望如果第一行已经满了则应该在下一行添加图像,如果第二行已满,则它应该从第二行开始然后它应该从第三行开始,依此类推。

我该怎么做?

package neeraj.com.images;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;

public class MainActivity extends AppCompatActivity {
    LinearLayout linearLayout1;



    @Override
    public void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        setContentView(R.layout.activity_main);
        linearLayout1 = (LinearLayout) findViewById(R.id.linearLayout1);


    }

    public void onClick(View v){

        ImageView image = new ImageView(MainActivity.this);
            image.setBackgroundResource(R.mipmap.ic_launcher);
        linearLayout1.addView(image);


    }



}

XML

<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:orientation="vertical"
    tools:context=".MainActivity" >

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

    <HorizontalScrollView
        android:id="@+id/hsv"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:fillViewport="true"
        android:measureAllChildren="false"
        android:scrollbars="none" >

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

    </HorizontalScrollView>





</LinearLayout>

2 个答案:

答案 0 :(得分:1)

我希望这可能有所帮助,使用Predicate Layout作为您的包装器并动态添加图像。

当第一行填充时,谓词布局会自动将图像移动到第二行。

下载PredicateLayout.java文件并将其粘贴到您的项目中。

<强>用法

 <PredicateLayout
            android:id="@+id/image_container"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="5dp">
        </PredicateLayout>

<强>爪哇

predicateLayout = (PredicateLayout) findViewById(R.id.image_container);
predicateLayout.addView(imageView); // add images on click

答案 1 :(得分:0)

我认为你应该使用网格视图,并继续添加适用于按钮单击的GridView的路径。将路径添加到适配器后,使用notifySetDataChange()来反映更改。