zoukankan      html  css  js  c++  java
  • day7+第一周 周总结

    本周总要是学习android的一些简单布局——LinearLayout, RelativeLayout, FrameLayout

    LinearLayout :线性布局

    orientation="horizontal"//水平方向
    只有水平方向的设置才起作用,垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的。
    android:orientation="vertical"//竖直方向
    只有垂直方向的设置才起作用,水平方向的设置不起作用。即:top,bottom,center_vertical 是生效的。

    RelativeLayout:相对布局,要有参照物,一些重要的属性(这些天我写布局用到的比较重要的属性)

    android:layout_below      在某元素的下方

    android:layout_above      在某元素的的上方

    android:layout_toLeftOf   在某元素的左边 

    android:layout_toRightOf  在某元素的右边 

    还有就是一些margin的属性

    android:visibility="nvisible":不显示,但保留所占的空间
    android:visibility="visible":正常显示
    android:visibility="gone":不显示,且不保留所占的空间

    实现商品展示

    布局代码

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:orientation="vertical"
        android:background="#EFFBFB">
        <RelativeLayout
            android:id="@+id/ralat"
            android:layout_width="wrap_content"
            android:layout_height="match_parent">
        <LinearLayout
            android:id="@+id/line_lay"
            android:layout_width="match_parent"
            android:layout_height="45dp"
            android:orientation="vertical"
            >
            <SearchView
                android:id="@+id/searchView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:iconifiedByDefault="false"
                android:queryHint="搜索内容" />
    
    
        </LinearLayout>
    
        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/buy_1"
            android:layout_below="@+id/line_lay"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            />
        </RelativeLayout>
    </FrameLayout>

    BuyFragment

    package Home;
    
    import android.content.Context;
    import android.os.Bundle;
    
    import androidx.fragment.app.Fragment;
    import androidx.recyclerview.widget.LinearLayoutManager;
    import androidx.recyclerview.widget.RecyclerView;
    
    import android.text.TextUtils;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ImageView;
    import android.widget.SearchView;
    import android.widget.TextView;
    
    import com.example.expressdelivery.R;
    
    import java.util.List;
    
    import Home.Data.Goods;
    import Home.Data.GoodsFactory;
    
    /**
     * A simple {@link Fragment} subclass.
    
     * create an instance of this fragment.
     */
    public class BuyFragment extends Fragment {
        // TODO: Rename parameter arguments, choose names that match
        // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
        private static final String ARG_PARAM1 = "param1";
        private static final String ARG_PARAM2 = "param2";
    
        // TODO: Rename and change types of parameters
        private String mParam1;
        private String mParam2;
        private RecyclerView mRecyc1;
        private BuyAdapter buyAdapter;
        private Context mcontext;
        private SearchView mSearch;
        private List<Goods> goods;
    
        public BuyFragment(Context context) {
            this.mcontext = context;
            // Required empty public constructor
        }
    
        public BuyFragment() {
    
        }
    
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            if (getArguments() != null) {
                mParam1 = getArguments().getString(ARG_PARAM1);
                mParam2 = getArguments().getString(ARG_PARAM2);
            }
    
        }
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            View view= inflater.inflate(R.layout.fragment_buy, container, false);
            goods= GoodsFactory.createMeizis(10);
    
            buyAdapter=new BuyAdapter(getActivity(),goods);
            mRecyc1=(RecyclerView) view.findViewById(R.id.buy_1);
            mSearch = (SearchView) view.findViewById(R.id.searchView);
            mSearch.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
    
                // 当点击搜索按钮时触发该方法
    
                @Override
    
                public boolean onQueryTextSubmit(String query) {
    
                    return false;
    
                }
    
                @Override
                public boolean onQueryTextChange(String newText) {
                    return false;
                }
            });
            mRecyc1.setLayoutManager(new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false));
            mRecyc1.setAdapter(buyAdapter);
            return view;
        }
    }

    BuyAdapter

    package Home;
    
    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ImageView;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import androidx.annotation.NonNull;
    import androidx.fragment.app.FragmentTransaction;
    import androidx.recyclerview.widget.RecyclerView;
    
    import com.bumptech.glide.Glide;
    import com.example.expressdelivery.HomeActivity;
    import com.example.expressdelivery.R;
    
    import java.io.File;
    import java.util.List;
    
    import Home.Data.Goods;
    import Home.Data.Zuoye;
    
    
    public class BuyAdapter extends RecyclerView.Adapter<BuyAdapter.BuyViewHolder>{
        private Context mcontext;
        private List<Goods> goods;
        private List<Zuoye> Zuoyes;
        private ImageView imageView2;
        public BuyAdapter(Context context,List<Goods> goods){
            this.mcontext=context;
            this.goods=goods;
        }
    
        @NonNull
        @Override
        public BuyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            return new BuyViewHolder(LayoutInflater.from(mcontext).inflate(R.layout.layout_buy_item,parent,false));
        }
    
        @Override
        public void onBindViewHolder(@NonNull BuyViewHolder holder, final int position) {
            final Goods good=goods.get(position);
            Glide.with(mcontext)
                    .load(good.getImageUrl())
                    .into(holder.imageView);
            holder.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Toast.makeText(mcontext,"欢迎来到"+(good.getName())+"商店",Toast.LENGTH_SHORT).show();
                    DetailFragment detailFragment=new DetailFragment(mcontext,good,position);
                    FragmentTransaction transaction=((HomeActivity)mcontext).getSupportFragmentManager().beginTransaction();
                    transaction.replace(R.id.fragment_container,detailFragment);
                    transaction.addToBackStack(null);
                    transaction.commit();
                }
            });
            holder.textView.setText(good.getName());
            holder.textView2.setText("$"+good.getPrice());
            holder.textView3.setText(good.getAddress());
        }
    
        @Override
        public int getItemCount() {
            return goods.size();
        }
    
    
    
        class BuyViewHolder extends RecyclerView.ViewHolder{
            private TextView textView;
            private TextView textView2;
            private ImageView imageView;
            private TextView textView3;
            public BuyViewHolder(@NonNull View itemView) {
                super(itemView);
                textView=(TextView)itemView.findViewById(R.id.tv_goods_name);
                textView2=(TextView)itemView.findViewById(R.id.tv_goods_price);
                textView3=(TextView)itemView.findViewById(R.id.tv_type_size);
                imageView=(ImageView)itemView.findViewById(R.id.iv_pic);
            }
        }
    }

    同时每一个item设计了点击事件进入下个Fragment也就是详情展示

    效果图

  • 相关阅读:
    Windows Mobile自动更新
    【实用代码片段】将json数据绑定到html元素 (转)
    B/S打印解决方案参考
    python基础之1-安装
    python里的生成器
    python中的函数的执行分类
    python中的return的返回与执行
    自创最精简的python装饰器
    python中的lambda函数用法
    python中的str.strip()的用法
  • 原文地址:https://www.cnblogs.com/chenaiiu/p/13467186.html
Copyright © 2011-2022 走看看