Android在CardView中不将视图显示为行
嘿,伙计们,我在Android在CardView中不将视图显示为行,android,android-layout,view,android-cardview,Android,Android Layout,View,Android Cardview,嘿,伙计们,我在cardwiew中显示一行有问题。我想用一行分隔图像和标题。我在cardwiew中对行使用视图。在预览中,它是确定的,但在我运行应用程序时它不会显示。这是我的代码: 我在另一个项目中做了这个,它成功了,但在这个项目中没有成功 xml代码: <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardView `enter code here`xmlns:android="htt
cardwiew
中显示一行有问题。我想用一行分隔图像和标题。我在cardwiew
中对行使用视图。在预览中,它是确定的,但在我运行应用程序时它不会显示。这是我的代码:
我在另一个项目中做了这个,它成功了,但在这个项目中没有成功
xml代码:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView `enter code here`xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_margin="4dp"
android:foreground="?attr/selectableItemBackground"
android:clickable="true"
app:cardCornerRadius="8dp"
xmlns:tools="http://schemas.android.com/tools">
<RelativeLayout
android:padding="8dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:scaleType="centerCrop"
android:id="@+id/img_amazingRow_icon"
android:layout_alignParentRight="true"
tools:src="@mipmap/ic_launcher"
android:layout_width="130dp"
android:layout_height="170dp" />
<TextView
android:textColor="#000"
android:id="@+id/txt_amazingRow_title"
android:ellipsize="end"
android:maxLines="1"
android:layout_centerHorizontal="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/img_amazingRow_icon"
tools:text="سرویس چای خوری"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<View
android:id="@+id/line_amazingRow"
android:layout_margin="8dp"
android:layout_below="@+id/txt_amazingRow_title"
android:background="#000"
android:layout_width="match_parent"
android:layout_height="1dp"/>
<TextView
android:textColor="@color/gray500"
android:layout_centerHorizontal="true"
android:layout_alignParentRight="true"
android:layout_below="@id/line_amazingRow"
tools:text="24500"
android:id="@+id/txt_amazingRow_discount"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:layout_marginTop="8dp"
android:textColor="#000"
android:layout_centerHorizontal="true"
android:layout_alignParentRight="true"
android:layout_below="@id/txt_amazingRow_discount"
tools:text="24500"
android:id="@+id/txt_amazingRow_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
</android.support.v7.widget.CardView>
活动代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setupViews();
getMainData();
final DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ImageView imgHamberMenu = (ImageView) findViewById(R.id.img_toolbar_hamberMenu);
imgHamberMenu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
drawer.openDrawer(Gravity.RIGHT);
}
});
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
public void getMainData() {
ApiService service = ApiClient.getClient().create(ApiService.class);
Call<MainData> call = service.getMainData();
call.enqueue(new Callback<MainData>() {
@Override
public void onResponse(Call<MainData> call, Response<MainData> response) {
MainData mainData = response.body();
cats=mainData.getCats();
iamgeUrl = mainData.getSliders();
catRecycler.setAdapter(new CatAdapter(MainActivity.this,cats));
amazingList=mainData.getAmazings();
for (int i = 0; i < iamgeUrl.size(); i++) {
DefaultSliderView defaultSliderView = new DefaultSliderView(MainActivity.this);
defaultSliderView
.image(iamgeUrl.get(i).getUrl())
.setScaleType(BaseSliderView.ScaleType.CenterCrop)
.setOnSliderClickListener(MainActivity.this);
defaultSliderView.bundle(new Bundle());
slider.addSlider(defaultSliderView);
txtHour.setText(hour+"");
txtMin.setText(min+"");
txtSecond.setText(second+"");
}
amazingRecycler.setAdapter(new AmazingAdapter(MainActivity.this,amazingList));
}
@Override
public void onFailure(Call<MainData> call, Throwable t) {
Log.i("LOG", t.toString());
}
});
}
public void setupViews() {
txtHour=(TextView)findViewById(R.id.txt_amazing_hour);
txtMin=(TextView)findViewById(R.id.txt_amazing_min);
txtSecond=(TextView)findViewById(R.id.txt_amazing_second);
imgBannerB=(ImageView)findViewById(R.id.img_main_bannerBottom) ;
imgBannerR=(ImageView)findViewById(R.id.img_main_bannerRight) ;
imgBannerL=(ImageView)findViewById(R.id.img_main_bannerLeft);
Picasso.with(getApplicationContext()).load("https://dkstatics-public.digikala.com/digikala-adservice-banners/4387.jpg").into(imgBannerB);
Picasso.with(getApplicationContext()).load("https://dkstatics-public.digikala.com/digikala-adservice-banners/2774.jpg").into(imgBannerL);
Picasso.with(getApplicationContext()).load("https://dkstatics-public.digikala.com/digikala-adservice-banners/1814.jpg").into(imgBannerR);
amazingRecycler=(RecyclerView)findViewById(R.id.rv_main_amazing);
amazingRecycler.setLayoutManager(new LinearLayoutManager(MainActivity.this,LinearLayoutManager.HORIZONTAL,true));
iamgeUrl = new ArrayList<>();
catRecycler=(RecyclerView)findViewById(R.id.rv_main_cats);
catRecycler.setLayoutManager(new LinearLayoutManager(MainActivity.this,LinearLayoutManager.HORIZONTAL,true));
slider = (SliderLayout) findViewById(R.id.slider_main);
slider.setPresetTransformer(SliderLayout.Transformer.Default);
slider.setPresetIndicator(SliderLayout.PresetIndicators.Center_Bottom);
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setupview();
getMainData();
最终抽屉布局抽屉=(抽屉布局)findViewById(R.id.抽屉布局);
ImageView imgHamberMenu=(ImageView)findViewById(R.id.img_工具栏_hamberMenu);
imgHamberMenu.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
抽屉。打开抽屉(重力。右);
}
});
NavigationView NavigationView=(NavigationView)findViewById(R.id.nav_视图);
navigationView.setNavigationItemSelectedListener(此);
}
public void getMainData(){
ApiService=ApiClient.getClient().create(ApiService.class);
Call Call=service.getMainData();
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
MainData MainData=response.body();
cats=mainData.getCats();
iamgeUrl=mainData.getSliders();
setAdapter(新的CatAdapter(MainActivity.this,cats));
amazingList=mainData.getAmazings();
对于(int i=0;i
适配器代码:
public class AmazingAdapter extends RecyclerView.Adapter<AmazingAdapter.AmazingViewHolder> {
public Context context;
public List<Amazing> amazingList;
public AmazingAdapter(Context context, List<Amazing> amazingList){
this.amazingList=amazingList;
this.context=context;
}
@NonNull
@Override
public AmazingViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view= LayoutInflater.from(context).inflate(R.layout.amazing_row,viewGroup,false);
return new AmazingViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull AmazingViewHolder amazingViewHolder, int position) {
Amazing amazing=amazingList.get(position);
amazingViewHolder.txtTitle.setText(amazing.getTitle());
amazingViewHolder.txtPrice.setText(amazing.getPrice()+" تومان");
SpannableString spannableString=new SpannableString(amazing.getPrice()+"تومان ");
spannableString.setSpan(new StrikethroughSpan(),0,amazing.getPrice().length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
amazingViewHolder.txtDiscount.setText(spannableString);
Picasso.with(context).load(amazing.getImg()).into(amazingViewHolder.imgIcon);
}
@Override
public int getItemCount() {
return amazingList.size();
}
public class AmazingViewHolder extends RecyclerView.ViewHolder{
ImageView imgIcon;
TextView txtTitle;
TextView txtPrice,txtDiscount;
public AmazingViewHolder(@NonNull View itemView) {
super(itemView);
txtTitle=(TextView)itemView.findViewById(R.id.txt_amazingRow_title);
txtPrice=(TextView)itemView.findViewById(R.id.txt_amazingRow_price);
txtDiscount=(TextView)itemView.findViewById(R.id.txt_amazingRow_discount);
imgIcon=(ImageView)itemView.findViewById(R.id.img_amazingRow_icon);
}
}
}
公共类AmazingAdapter扩展了RecyclerView.Adapter{
公共语境;
公共列表惊奇列表;
公共AmazingAdapter(上下文,列表amazingList){
this.amazingList=amazingList;
this.context=context;
}
@非空
@凌驾
public AmazingViewHolder onCreateViewHolder(@NonNull ViewGroup ViewGroup,int i){
视图=布局更平坦。从(上下文)。充气(R.layout.Azing_行,视图组,false);
返回新的AmazingViewHolder(视图);
}
@凌驾
BindViewHolder上的公共无效(@NonNull AmazingViewHolder AmazingViewHolder,int位置){
惊人=惊人列表。获取(位置);
amazingViewHolder.txtTitle.setText(惊人的.getTitle());
amazingViewHolder.txtPrice.setText(amazing.getPrice()+“توان”);
SpannableString SpannableString=新的SpannableString(惊人的.getPrice()+“تمان”);
spannableString.setSpan(新删除线粗SPAN(),0,惊人的.getPrice().length(),SPAN.SPAN_EXCLUSIVE_EXCLUSIVE);
amazingViewHolder.txtDiscount.setText(spannableString);
毕加索.with(context).load(惊人的.getImg()).into(惊人的视图持有者.imgIcon);
}
@凌驾
public int getItemCount(){
返回amazingList.size();
}
公共类AmazingViewHolder扩展了RecyclerView.ViewHolder{
ImageView imgIcon;
TextView-txtTitle;
TextView txtPrice,txtDiscount;
公共AmazingViewHolder(@NonNull View itemView){
超级(项目视图);
txtTitle=(TextView)itemView.findViewById(R.id.txt\u amazingRow\u title);
txtPrice=(TextView)itemView.findViewById(R.id.txt\u amazingRow\u price);