小编Kev*_*vie的帖子

Android - 包含ExpandableListView的NestedScrollView在展开时不会滚动

我有一个ExpandableListView内部NestedScrollView(是的我知道,在另一个滚动视图中有一个滚动视图是不好的,但我不知道还有什么要做,请告诉我,如果有人知道更好的方法).

内容的大小NestedScrollView仍然在屏幕内,因此它不会滚动,但是当ExpandableListView展开时,内容将泄漏到屏幕外但NestedScrollView仍然不会滚动..为什么会这样?

这是我的NestedScrollView布局:

<NestedScrollView>
    <LinearLayout>
        <LinearLayout></LinearLayout>
        ... // About 3 of the LinearLayouts
        <ExpandableListView/>
    </LinearLayout>
</NestedScrollView>
Run Code Online (Sandbox Code Playgroud)

android expandablelistview android-nestedscrollview

16
推荐指数
3
解决办法
8727
查看次数

Android - 在添加项目或滚动时,ItemDecoration有时会消失或放错地方

我刚刚开始使用ItemDecoration.我试图在一个由两个列RecyclerView管理的中间实现一个分隔符StaggeredGridLayoutManager.

这是我的ItemDecoration代码:

public class LobbyItemDecoration extends RecyclerView.ItemDecoration {

    private int margin;
    private Drawable drawable;

    public LobbyItemDecoration(int margin, Drawable drawable){
        this.margin = margin;
        this.drawable = drawable;
    }

    @Override
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
        super.getItemOffsets(outRect, view, parent, state);
        int position = parent.getChildAdapterPosition(view);

        StaggeredGridLayoutManager.LayoutParams lp = (StaggeredGridLayoutManager.LayoutParams)view .getLayoutParams();
        int spanIndex = lp.getSpanIndex();

        if(position >= 0){
            if (position < ((LobiAdapter)parent.getAdapter()).getmDataset().size()){
                if(spanIndex == 1){
                    outRect.left = margin;
                    ((LobiAdapter)parent.getAdapter()).getmDataset().get(position).left = false;
                } …
Run Code Online (Sandbox Code Playgroud)

android

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

Android - NestedScrollView内的RecyclerView上的性能问题

我有一个NestedScrollViewRecyclerView和一个RelativeLayout位于内..

基本上就是这样

<NestedScrollView>

<RelativeLayout> //To contain the stuffs inside

    <RelativeLayout /> // Contains a `TextView` and a `ProgressBar`

    <RecyclerView /> // The most important thing.. Maybe

</RelativeLayout>

</NestedScrollView>
Run Code Online (Sandbox Code Playgroud)

我正在使用一个CustomLinearLayoutManager并且recyclerView.setNestedScrollingEnabled(false);为了滚动两个RelativeLayoutRecyclerView一起,否则,只有RecyclerView会滚动,RelativeLayout它将保持在它的顶部.

每当RecyclerView加载新数据时,它会冻结3-5秒,这对用户体验非常不利..这就是CustomLayoutManager我正在使用的..

public class CustomLayoutManager extends LinearLayoutManager {

    public CustomLayoutManager(Context context) {
        super(context);
    }

    public CustomLayoutManager(Context context, int orientation, boolean reverseLayout) {
        super(context, orientation, reverseLayout);
    }

    public CustomLayoutManager(Context context, AttributeSet …
Run Code Online (Sandbox Code Playgroud)

android linearlayoutmanager

5
推荐指数
0
解决办法
1452
查看次数

Android - 在 Activity 和 Fragment 中使用 CoordinatorLayout

所以我在 Activity 中使用 CoordinatorLayout 就像..

<CoordinatorLayout>
    <AppBarLayout>
        <Toolbar/>
    </AppBarLayout>
    <FrameLayout> // For Fragments
</CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

用途为.Toolbarscroll|enterAlwaysScrollflags

在一个特定的片段中,我想在布局上实现视差效果并CoordinatorLayout再次使用,但这会导致工具栏行为不正常。

这是我在 的布局中使用它的方法Fragment

<CoordinatorLayout>
    <AppBarLayout>
        <CollapsingToolbarLayout>
            <Toolbar/>
        </CollapsingToolbarLayout>
    </AppbarLayout>

    <RelativeLayout/> // Contains the Fragment's content
</CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

怎样才能达到这两种效果呢?Fragment是不是因为sCoordinatorLayout拦截了事件所以不可能?

大致布局

因此工具栏在滚动时隐藏,我需要使用滚动时的视差效果隐藏搜索功能

android android-coordinatorlayout

5
推荐指数
1
解决办法
1485
查看次数

Android - TextInputLayout不包含TextInputEditText的提示

我有一个简单的TextInputEditText嵌套TextTnputLayout.

我试图让它与提供TIL的暗示一样长TIET.

<android.support.design.widget.TextInputLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <android.support.design.widget.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:hint="This is a hint"/>

</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

但问题是,它没有显示任何东西 没有

我必须将TIL宽度设置为match_parent或除了之外的任何其他宽度wrap_content.但是我希望宽度是动态的,宽度TIL跟随提示的长度.可能吗?如果是的话,怎么做?

我正在使用支持库版本26.0.2顺便说一句.

Yvette Colomb的答案很接近,TIL包装TIET但花哨的动画在那里不起作用.可能是因为如果在执行中设置了提示,动画将无法启动?

android android-textinputlayout

4
推荐指数
1
解决办法
1951
查看次数

Android - 滚动到 ChipGroup 中选定的子位置

我正在尝试Chips在水平滚动中制作一个包含 4 的 Activity ChipGroup

此活动使用ChipGroup作为 API 调用的过滤器,并且可以有附加信息告诉用户选择了哪个芯片。

目前我正在这样做:

chipScroll.postDelayed(() -> {
                chipScroll.smoothScrollBy(800, 0);
            },100);
Run Code Online (Sandbox Code Playgroud)

但这对于我想要实现的目标来说是一个相当古怪的解决方案。

还有其他方法可以滚动到Chip水平滚动中的选定内容吗ChipGroup

编辑 :

我想过尝试迭代地获取所有芯片ChipGroup并匹配其 ID。但它似乎也很hacky。spinnerAdapter.getItem(spinner.getSelectedItemPosition)我的目标是这样的

android android-chips

3
推荐指数
1
解决办法
1593
查看次数

Android - RecyclerView具有一个布局,多个setVisibility

我有一个基本上所有在一个布局,其中包含我的应用程序的主要所需的一切.所有可变项目(图像,视频缩略图等等)GONE首先设置为VISIBLE并在需要时设置为.

问题有时可能是由于RecyclerView回收行为,应该GONEVISIBLE错误的地方.

示例:

项目编号1包含文本

第2项包含图像

第3项包含图像

我继续向下滚动到项目no x,然后向上滚动,这是我得到的:

项目编号1包含项目编号x的图像,有时编号项目编号3

第2项包含图像

第3项包含图像

我正在使用自定义的ViewHolder extends RecyclerView.ViewHolder.的目的CustomViewHolder是为布局声明和初始化.

    ProgressBar progressBar;
    View viewDimmer;
    RelativeLayout postListWrapper;

    ...

    public ObjectViewHolder(View v) {
        super(v);
        progressBar = (ProgressBar)v.findViewById(R.id.post_inscroll_progressBar);
        viewDimmer = (View)v.findViewById(R.id.post_inscroll_viewDimmer);
        postListWrapper = (RelativeLayout)v.findViewById(R.id.post_inscroll_postListWrapper);
    }
Run Code Online (Sandbox Code Playgroud)

我如何加载图像的示例:

Picasso.with(context)
    .load(youtubeThumbnailUrl)
    .fit()
    .centerCrop()
    .into(
        ((ObjectViewHolder) holder).userPostYoutubeImage
    );
Run Code Online (Sandbox Code Playgroud)

GONE如果没有从服务器获取url,我已将每个可见性设置为

((ObjectViewHolder) holder).userPostImageWrapper.setVisibility(View.GONE);
((ObjectViewHolder) holder).userPostYoutubeImageWrapper.setVisibility(View.GONE);
Run Code Online (Sandbox Code Playgroud)

但不知何故,图像仍然在之前的项目上重复使用(是的,不仅仅是第1项).有时图像也是错误的ImageView.图像D应该在ImageViewD中,但它在ImageViewA中.

设置RecyclerView和运行良好的指南?

如果我遗漏任何内容,或者需要提供更多代码,请告知我:D

java android visibility android-view android-recyclerview

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

Android - 从TextView获取特定文本

我试图获得一个特定的价值TextView,即Youtube链接.

我想只提取例如TextView包含"Check this out!(Youtube link here)"的链接."检查出来!"需要省略,只获取Youtube链接.该TextView是用户输入的,所以变化.

有什么建议吗?

android textview

0
推荐指数
1
解决办法
843
查看次数