将父级中的快餐栏中ImageView的宽度与Android中的自定义视图匹配不起作用 [英] Match parent for width of ImageView in snackbar with custom view in Android is not working
问题描述
我正在开发一个Android应用程序.在我的应用中,我使用的是带有自定义视图的小吃栏.我的自定义视图只有子视图.那是一个图像视图.显示带有小吃店的自定义视图是可以的.但是问题在于小吃店中ImageView的大小.我想将其设置为与之匹配.但是宽度与快餐栏的宽度不匹配.
I am developing an Android app. In my app, I am using snackbar with custom view. My custom view has only child view. That is an image view. Showing custom view with snack bar is OK. But the problem is with the sizing the ImageView in the snack bar. I want to set it match parent for with. But width is not match to the width of snackbar.
这是我对小吃店的自定义视图布局
This is my custom view layout for snack bar
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:scaleType="centerCrop"
android:id="@+id/snackbar_ad_image"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
这是我在活动中显示小吃店的方式
This is how I show snack bar in activity
private void showSnackbarAd(View view,Ad ad)
{
final Snackbar snackbar = Snackbar.make(view,"",Snackbar.LENGTH_LONG);
Snackbar.SnackbarLayout layout = (Snackbar.SnackbarLayout)snackbar.getView();
TextView textView = (TextView) layout.findViewById(android.support.design.R.id.snackbar_text);
textView.setVisibility(View.INVISIBLE);
View snackView = getLayoutInflater().inflate(R.layout.snack_bar_ad,null);
ImageView imageView = (ImageView)snackView.findViewById(R.id.snackbar_ad_image);
Picasso.with(getBaseContext()).load(ad.getImageUrl()).into(imageView);
layout.addView(snackView, 0);
snackbar.show();
}
我想要的是ImageView宽度相同的零食吧.但是我的代码无法正常工作.
What I want is I want ImageView same width width snack bar. But my code is not working.
这就是我所得到的.
如何使该ImageView与Snackbar具有相同的宽度并适合于Snackbar?
How can I make that ImageView as the same width with Snackbar and fit in snackbar?
推荐答案
尝试以下代码,
private void showSnackbarAd(View view,Ad ad) {
final Snackbar snackbar = Snackbar.make(view,"",Snackbar.LENGTH_LONG);
Snackbar.SnackbarLayout layout = (Snackbar.SnackbarLayout)snackbar.getView();
layout.setPadding(0, 0, 0, 0);//set padding to 0
TextView textView = (TextView) layout.findViewById(android.support.design.R.id.snackbar_text);
textView.setVisibility(View.INVISIBLE);
View snackView = getLayoutInflater().inflate(R.layout.snack_bar_ad, layout);// use the parent ViewGroup instead of null
ImageView imageView = (ImageView)snackView.findViewById(R.id.snackbar_ad_image);
Picasso.with(getBaseContext()).load(ad.getImageUrl()).into(imageView);
//layout.addView(snackView, 0);
snackbar.show();
}
这篇关于将父级中的快餐栏中ImageView的宽度与Android中的自定义视图匹配不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!