我希望按行按顺序添加按钮,如果第一行已填充则应从下一行开始。
我已经使用线性布局水平定义了滚动视图,并且它是水平添加但是我希望如果第一行已经满了则应该在下一行添加图像,如果第二行已满,则它应该从第二行开始然后它应该从第三行开始,依此类推。
我该怎么做?
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>
答案 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()来反映更改。