小编And*_*rew的帖子

android支持设计lib中的TabLayout中的IndexOutOfBoundsException

我在所有项目中使用android.support.design,今天我将其更新到最新版本

com.android.support:design:22.2.1

这是一个坏主意,因为我的项目崩溃了

java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
java.util.ArrayList.get(ArrayList.java:308)
android.support.design.widget.TabLayout.getTabAt(TabLayout.java:407)
android.support.design.widget.TabLayout.setupWithViewPager(TabLayout.java:585)
Run Code Online (Sandbox Code Playgroud)

经过一些调试,我发现这个方法有问题:

 public void setupWithViewPager(@NonNull ViewPager viewPager) {
    PagerAdapter adapter = viewPager.getAdapter();
    if(adapter == null) {
        throw new IllegalArgumentException("ViewPager does not have a PagerAdapter set");
    } else {
        this.setTabsFromPagerAdapter(adapter);
        viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(this));
        this.setOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager));
        if(this.mSelectedTab == null || this.mSelectedTab.getPosition() != viewPager.getCurrentItem()) {
            this.getTabAt(viewPager.getCurrentItem()).select();// ERROR On my code I'm used empty adapter 
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

但在之前的lib.2.2.2.0版本中,一切正常:

    public void setupWithViewPager(ViewPager viewPager) {
    PagerAdapter adapter = viewPager.getAdapter();
    if(adapter == …
Run Code Online (Sandbox Code Playgroud)

java android android-support-design

8
推荐指数
1
解决办法
1402
查看次数

如何实现PeriodicWorkRequest链?

我研究了Android WorkManager,并且遇到了一个问题。

我有2个作品,第一个作品从服务器和第二个预加载资源中获取一些数据(取决于第一作品的结果)。我每小时需要做一次这种链条。

我需要类似的东西:

workManager.beginWith(work1).then(work2)
Run Code Online (Sandbox Code Playgroud)

但是在WorkManger API中,我发现仅针对OneTimeWorkRequest的链。

android android-jetpack android-workmanager

6
推荐指数
1
解决办法
275
查看次数

如何为 Android Jetpack Compose Column 或 Row 添加渐隐边缘效果?

我需要实现具有顶部渐隐边缘效果的 LazyColumn。在 Android 上,我对 ListView 或 RecyclerView使用淡入淡出渐变,但找不到 Jetpack Compose 的任何解决方案!

在此处输入图片说明

我试图修改画布:

@Composable
fun Screen() {
    Box(
        Modifier
            .fillMaxWidth()
            .background(color = Color.Yellow)
    ) {
        LazyColumn(
            modifier = Modifier
                .fillMaxSize()
                .drawWithContent {
                    val colors = listOf(Color.Transparent, Color.Black)
                    drawContent()
                    drawRect(
                        brush = Brush.verticalGradient(colors),
                        blendMode = BlendMode.DstIn
                    )
                }
        ) {
            itemsIndexed((1..1000).toList()) { item, index ->
                Text(
                    text = "Item $item: $index value",
                    modifier = Modifier.padding(12.dp),
                    color = Color.Red,
                    fontSize = 24.sp
                )
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但有错误的结果:

在此处输入图片说明

android kotlin android-jetpack android-jetpack-compose

5
推荐指数
3
解决办法
644
查看次数