我正在开发一个 Android 应用程序。在我的应用程序中,我使用带有自定义 View 的 snackbar 。我的自定义 View 只有 subview 。那是 ImageView 。显示带有 snackbar 的自定义 View 是可以的。但问题在于 snackbar 中 ImageView 的大小。我想将它设置为与父匹配。但是宽度与 snackbar 的宽度不匹配。
这是我为 snackbar 定制的 View 布局
<?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>
这是我在 Activity 中展示 snackbar 的方式
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 宽度相同宽度的 snackbar 。但是我的代码不起作用。
这是我得到的。
如何使 ImageView 与 Snackbar 的宽度相同并适合 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();
}
关于android - 将 snackbar 中 ImageView 的宽度与 Android 中的自定义 View 的父级匹配不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38030133/