小编Maa*_*ten的帖子

Picasso中的缓存无效

我使用Picasso从磁盘加载图像,例如,Picasso.with(ctx).load(new File("/path/to/image")).into(imageView)但每当我在该文件中保存新图像并刷新我的时候ImageView,Picasso仍然会缓存位图.

是否有可能使Picasso中的缓存无效?

android caching image-loading picasso

74
推荐指数
9
解决办法
6万
查看次数

撰写:将文本包装在行布局中,而不是将同级文本推出

我正在尝试 Jetpack Compose,但 Row 的行为让我感到困惑。我在图标按钮旁边有一个文本,我希望图标按钮锚定到最小宽度为 48dp 的一侧,并让文本环绕它。像这样:

布局目标

但文本不会换行,它会占用行中的所有空间:

布局预览

@Composable
fun SampleLayout(text: String) {
                    Row(
                        modifier = Modifier.fillMaxWidth(),
                        horizontalArrangement = Arrangement.SpaceBetween,
                    ) {
                        Text(text)
                        IconButton(
                            onClick = {  },
                        ) {
                            Icon(
                                imageVector = androidx.compose.material.icons.Icons.Default.StarBorder,
                                null
                            )
                        }
                    }
}

@Preview(showBackground = true, backgroundColor = 0x006EAEA0, fontScale = 1.5F)
@Composable
fun SamplePreview1() {
    Box(Modifier.padding(16.dp)) {
        SampleLayout("helooooo")
    }
}

@Preview(showBackground = true, backgroundColor = 0x006EAEA0, fontScale = 1.5F)
@Composable
fun SamplePreview2() {
    Box(Modifier.padding(16.dp)) {
        SampleLayout("helooooooooooooooooooooooooooo")
    }
}
@Preview(showBackground = true, backgroundColor = …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-jetpack-compose

54
推荐指数
2
解决办法
2万
查看次数

内容增长时如何阻止表调整大小?

我有一个table,其中的细胞充满了图片.当你将鼠标悬停在它们上面时,我希望这些图片变得更大,我希望桌子的细胞保持相同的大小.

img样式更改为position:relative不起作用.改变它position:absolute确实有效,但我不知道图像的绝对位置.

使用CSS有没有一个优雅的解决方案?我宁愿不使用任何JavaScript.

html css html-table

30
推荐指数
3
解决办法
8万
查看次数

滚动GridView时会保留填充栏

我有这个GridView(见截图),其中包含所有需要大约12个间距的项目.但是,当我在上面设置填充时GridView,似乎我无法滚动浏览这个我想要做的填充.我该如何实现这一目标?

请注意我要滚动的前两张图片上方的空白片段:

滚动时的屏幕截图

码:

<GridView
    android:id="@+id/feed_grid"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:columnWidth="96dp"
    android:gravity="center"
    android:horizontalSpacing="@dimen/grid_view_margins"
    android:numColumns="auto_fit"
    android:padding="@dimen/grid_view_margins"
    android:stretchMode="columnWidth"
    android:scrollbarStyle="outsideInset"
    android:verticalSpacing="@dimen/grid_view_margins" />
Run Code Online (Sandbox Code Playgroud)

android

25
推荐指数
1
解决办法
3325
查看次数

将Spannable与String.format()结合使用

假设您有以下字符串:

String s = "The cold hand reaches for the %1$s %2$s Ellesse's";
String old = "old"; 
String tan = "tan"; 
String formatted = String.format(s,old,tan); //"The cold hand reaches for the old tan Ellesse's"
Run Code Online (Sandbox Code Playgroud)

假设您希望以此字符串结束,但也Span为任何替换的单词设置了特定的集合String.format.

例如,我们还想做以下事情:

Spannable spannable = new SpannableString(formatted);
spannable.setSpan(new StrikethroughSpan(), oldStart, oldStart+old.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
spannable.setSpan(new ForegroundColorSpan(Color.BLUE), tanStart, tanStart+tan.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
Run Code Online (Sandbox Code Playgroud)

是否有结识的开始指数的稳健的方式oldtan

请注意,只搜索'old'会在'cold'中返回'old',因此无效.

什么的工作,我想,正在寻找%[0-9]$s事前,并计算补偿值以反映在更换String.format.这看起来很令人头疼,我怀疑可能有一种方法String.format可以提供有关其格式化细节的更多信息.好吧,有吗?

android spannablestring spannable

23
推荐指数
3
解决办法
8394
查看次数

Parcel.readStringArray()的参数是什么?

我试图Fragment通过使用来保存我的状态Parcelable.

当我希望返回我在Parcelable中保存的String数组时,这会导致以下代码:

public MyObject createFromParcel(Parcel in) {
            titles=in.readStringArray(???);
}
Run Code Online (Sandbox Code Playgroud)

现在readStringArray需要一个参数,一个String[]......但为什么呢?它可以只给出我存储在其中的字符串.我不知道先天有多少,所以这很糟糕.:(

文件说以下内容:

That is, nothing.

EDIT: If anyone has the same problem: I ended up using writeBundle()/ readBundle()并把我String[]放入Bundle.

android parcelable

17
推荐指数
2
解决办法
5112
查看次数

LoaderManager.restartLoader()总是会调用onCreateLoader()吗?

LoaderManager有这个方法restartLoader():

public abstract Loader<D> restartLoader (int id, Bundle args, LoaderCallbacks<D> callback)

在此管理器中启动新的或重新启动现有的Loader,向其注册回调,并且(如果活动/片段当前已启动)开始加载它.如果先前已启动具有相同id的加载器,则在新加载器完成其工作时将自动销毁该加载器.回调将在旧的加载器被销毁之前传递.

基于开发指南,我得到的结论是,确实,调用onCreateLoader将始终来自restartLoader():

重新启动加载程序

...

要丢弃旧数据,请使用restartLoader().例如,当用户的查询更改时,SearchView.OnQueryTextListener的此实现会重新启动加载程序.需要重新启动加载程序,以便它可以使用修订的搜索过滤器来执行新查询:

public boolean onQueryTextChanged(String newText) {
    // Called when the action bar search text has changed.  Update
    // the search filter, and restart the loader to do a new query
    // with this filter.
    mCurFilter = !TextUtils.isEmpty(newText) ? newText : null;
    getLoaderManager().restartLoader(0, null, this);
    return true;
}

public Loader<Cursor> onCreateLoader(int id, Bundle args) {
    // NOTE: …
Run Code Online (Sandbox Code Playgroud)

android android-loadermanager android-loader

15
推荐指数
1
解决办法
1万
查看次数

什么是模态选择选择模式?

将my的选择模式设置ListView为multiple时,我遇到了Android API级别11中引入的常量:CHOICE_MODE_MULTIPLE_MODAL.JavaDoc并没有帮助我:

public static final int CHOICE_MODE_MULTIPLE_MODAL

该列表允许在模态选择模式中进行多种选择.

什么是模态选择模式?找不到它.

android listview modal-dialog selection

13
推荐指数
1
解决办法
7302
查看次数

ImageView缩放到固定高度,但裁剪多余的宽度

我希望我ImageView以特定的方式扩展:

  • 缩放,使图像的高度始终适合的高度 ImageView
  • 裁剪任何多余的宽度

一张图片的声音大于1000字,所以这里是我想要ImageView表现的方式.假设它有一个固定的高度,比如100dp,假设它的宽度是match_parent.

在此输入图像描述

注意

  • 在手机布局上,图像高度被拉伸,但两侧被裁剪,类似于CROP_CENTER.
  • 在平板电脑布局上,图像也被拉伸以适应ImageView高度,表现得像FIT_CENTER

我怀疑我需要scaleType:matrix,但在那之后我迷失了.如何确保图像适合Y,但作物X?

android android-imageview

9
推荐指数
2
解决办法
1万
查看次数

在JSON-LD中,是否可以为属性值定义URI映射?

假设我们有以下JSON:

{
  "@context":
  {
    "name": "http://schema.org/name",
    "status": "http://schema.org/status"
  },
  "name": "Manu Sporny",
  "status": "trollin'"
}
Run Code Online (Sandbox Code Playgroud)

(JSON-LD游乐场)

trollin'状态被标识一个URI: http://example.com/trolling.是否可以将trollin'上面示例中的关键字扩展为URI http://example.com/trolling

直接操作上下文不起作用:

{
  "@context":
  {
    "name": "http://schema.org/name",
    "status": "http://schema.org/status",
    "trollin'": "http://example.com/trolling"
  },
  "name": "Manu Sporny",
  "status": "trollin'"
}
Run Code Online (Sandbox Code Playgroud)

(JSON游乐场)

强制的类型status@id也是不行的,因为它会假设trollin'是一个相对的URI.

{
  "@context":
  {
    "name": "http://schema.org/name",
    "status": {
      "@id": "http://schema.org/status",
      "@type": "@id"
    },
    "trollin'": "http://example.com/trolling"
  },
  "name": "Manu Sporny",
  "status": "trollin'"
}
Run Code Online (Sandbox Code Playgroud)

(JSON-LD游乐场)

json-ld

9
推荐指数
1
解决办法
450
查看次数