Android元素之间的相对布局间距

时间:2018-10-24 15:09:36

标签: android android-relativelayout

我在相对布局中有此设计。我还要做更多的事情。

  1. 如何删除两个元素之间的直线?
  2. 如何增加两个元素之间的空间?
  3. 如何并排显示产品?

我尝试了stackoverflow的几种解决方案。就像我用保证金底但没有运气。

enter image description here

  <?xml version="1.0" encoding="utf-8"?>


 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="wrap_content"
 android:layout_height="250dp"
 android:background="@drawable/round_corner"
 android:layout_marginRight="20dp"
  >



<RelativeLayout
    android:layout_width="200dp"
    android:layout_height="250dp"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:paddingRight="20dp"
    android:paddingLeft="20dp"
    >



      <de.hdodenhof.circleimageview.CircleImageView xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/product_image"
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:layout_marginLeft="15dp"
        android:layout_marginTop="20dp"
        android:foregroundGravity="center"
        app:civ_border_color="#d1b1b1"

        />


    <View
        android:layout_width="match_parent"
        android:layout_height="180dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="1dp"
        android:layout_marginTop="0dp"
        android:background="@drawable/gradient" />


    <TextView
        android:id="@+id/product_name_english"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/product_image"
        android:layout_alignTop="@id/product_image"
        android:layout_alignRight="@id/product_image"
        android:layout_alignBottom="@id/product_image"
        android:layout_margin="1dp"
        android:gravity="center"
        android:text="Hello"
        android:textColor="#FFFF"
        android:fontFamily="@font/aerial"/>


    <TextView
        android:id="@+id/price"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/product_name_english"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="-51dp"
        android:layout_marginBottom="1dp"
        android:fontFamily="@font/aerial"
        android:text="Hello"
        android:textColor="#FFFF" />

    <Button
        android:layout_width="250dp"
        android:layout_height="20dp"
        android:layout_alignParentTop="true"
        android:layout_marginTop="194dp"
        android:background="@drawable/buttonshape"
        android:shadowColor="#A8A8A8"
        android:shadowDx="0"
        android:shadowDy="0"
        android:shadowRadius="5"
        android:text="Add to cart"
        android:textColor="#FFFFFF"
        android:textSize="10sp" />

    <Button
        android:layout_width="250dp"
        android:layout_height="20dp"
        android:layout_alignParentTop="true"
        android:layout_marginTop="224dp"
        android:background="@drawable/buttonshape"
        android:shadowColor="#A8A8A8"
        android:shadowDx="0"
        android:shadowDy="0"
        android:shadowRadius="5"
        android:text="View Product"
        android:textColor="#FFFFFF"
        android:textSize="10sp" />
   </RelativeLayout>





</FrameLayout>

这是我要发送到适配器的列表视图

        listView = (ListView) findViewById(R.id.product_list);
        mAdapter = new all_product_list_ArrayAdapter(all_product.this,data);
        listView.setAdapter(mAdapter);

这是我的ArrayAdapter类:

      package com.example.yunus.ybazar_android;

    import android.content.Context;
    import android.content.Intent;
     import android.graphics.drawable.Drawable;
     import android.support.annotation.LayoutRes;
    import android.support.annotation.NonNull;
   import android.support.annotation.Nullable;
    import android.util.Log;
   import android.view.LayoutInflater;
     import android.view.View;
    import android.view.ViewGroup;
   import android.widget.ArrayAdapter;
   import android.widget.Button;
   import android.widget.ImageView;
   import android.widget.TextView;
    import android.support.v7.app.AppCompatActivity;
   import android.os.Bundle;
   import android.view.View;


 import java.io.InputStream;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
 import android.support.annotation.NonNull;
 import android.widget.Toast;

 import com.bumptech.glide.Glide;
 import com.bumptech.glide.load.engine.DiskCacheStrategy;

 public class all_product_list_ArrayAdapter extends   ArrayAdapter<all_product_list_android_model>  {

  private final String Tag = "Filter" ;

  private Context mContext;
  private ArrayList<all_product_list_android_model> product_list ;

  private final String urlMain = "http://118.179.70.235:28965/media/" ;




  public all_product_list_ArrayAdapter(@NonNull Context context, ArrayList<all_product_list_android_model> list) {
    super(context, 0, list);
    mContext = context ;
    product_list = list ;

}

   @NonNull
   @Override
   public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {

        View listItem = convertView;

        if(listItem == null)
             listItem = LayoutInflater.from(mContext).inflate(R.layout.all_product_list_arrayadapter_connection,parent,false);

           all_product_list_android_model   product_list_to_show = product_list.get(position);

           ImageView image = (ImageView)listItem.findViewById(R.id.product_image);
          new DownLoadImage(image).execute(urlMain.concat(product_list_to_show.product_main_image));


           TextView name = (TextView)   listItem.findViewById(R.id.product_name_english);
        name.setText(product_list_to_show.product_name_english);

        TextView price = (TextView) listItem.findViewById(R.id.price);
        price.setText(("Taka ")
                 .concat(product_list_to_show.product_unit_price)
                 .concat("/")
                 .concat(product_list_to_show.product_unit));



        final Button bt = (Button) listItem.findViewById(R.id.add_to_cart);
        bt.setTag(product_list_to_show.id);

        final Button bt2 = (Button) listItem.findViewById(R.id.view_product);
        bt2.setTag(product_list_to_show.id);




    bt.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {



        }
    });



       bt2.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {

                Intent intent = new Intent(mContext, indi_product_show.class);
                intent.putExtra("product_id",String.valueOf(bt2.getTag()));
                mContext.startActivity(intent);

          }
      });


          return listItem;
     }


 }

2 个答案:

答案 0 :(得分:1)

将ListView的分隔线设置为null,将其分隔线高度设置为0像素:

listView = (ListView) findViewById(R.id.product_list);
listView.setDivider(null);
listView.setDividerHeight(0);
mAdapter = new all_product_list_ArrayAdapter(all_product.this,data);
listView.setAdapter(mAdapter);

更多信息可以在ListView的文档中找到:

答案 1 :(得分:1)

以这种方式对ListView使用分隔符:

<ListView 
android:id="@+id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:divider="@null"
android:dividerHeight="0dp"/>