gpt4 book ai didi

android - 将 snackbar 中 ImageView 的宽度与 Android 中的自定义 View 的父级匹配不起作用

转载 作者:行者123 更新时间:2023-11-29 15:05:19 28 4
gpt4 key购买 nike

我正在开发一个 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 。但是我的代码不起作用。

这是我得到的。

enter image description here

如何使 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com