我的问题:我的ListView中的一个项目在我开始滚动后会动画。它不是最后一项,动画应该完成。一旦问题消失,我滚动后,它只发生一次,并且只发生在列表中的单个项目上。
在我开始滚动ListView之后,如何停止单个项目的动画制作?
我希望在将项目添加到适配器时,动画仅运行一次。
我有一个列表适配器,当项目添加到列表中时,我在其中对它们进行动画处理。我正在使用声明的动画器在适配器的getView()方法中从左侧滑动项目。这是我的getView()方法,其中应用了动画。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
String listItemText = mList.get(position);
ViewHolder holder = null;
if (convertView == null) {
LayoutInflater li = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = li.inflate(R.layout.list_item, null);
holder = new ViewHolder();
holder.mListItemText = (TextView) convertView.findViewById(R.id.progress_title);
Animation animation = AnimationUtils.loadAnimation(mContext, R.anim.slide_in_left);
convertView.startAnimation(animation);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.mListItemText.setText(listItemText);
return convertView;
}
private static class ViewHolder {
public TextView mListItemText;
}
第一次列表尝试生成行时,convertView为null。因此,动画仅在第一次和第一个项目中开始。
您想要的是在例如将标志设置为true时对项目进行动画处理。
一个例子:
要检查项目是否为新项目,我将按以下方式执行:
public void initList() {
/* Change your mList to get Bundle instead of String */
mList = new ArrayList<Bundle>();
}
/* When you add an item you will put a bundle with your string and a flag that tell the item is new */
public void addItem(String item) {
Bundle bundle = new Bundle();
bundle.putString("string", item);
bundle.putBoolean("new", true);
mList.add(bundle);
}
现在检查对象是否为新对象:
public View getView(int position, View convertView, ViewGroup parent) {
Bundle item = mList.get(position);
ViewHolder holder = null;
if (convertView == null) {
LayoutInflater li = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = li.inflate(R.layout.list_item, null);
holder = new ViewHolder();
holder.mListItemText = (TextView) convertView.findViewById(R.id.progress_title);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.mListItemText.setText(item.getString("string"));
if(item.getBoolean("new") == true) {
Animation animation = AnimationUtils.loadAnimation(mContext, R.anim.slide_in_left);
convertView.startAnimation(animation);
item.setBoolean("new", false);
}
return convertView;
}
我有一个问题与自动滚动在滚动视图。 在我的例子中,有两个Recyclerview。第一个循环视图,水平滚动,第二个垂直滚动。第一个循环视图仅用于拖动,第二个循环视图只用于拖放。两个循环视图都在ScrollView中,所以我在第二个循环视图中禁用了垂直滚动。我在第二个Recyclerview的项目中添加了DragListener。每个项目都有一个拖动侦听器,因此我在拖放项目时添加/替换项目。 所以我
问题内容: 我有这个(包裹在)中,并有个。的内容是简单的HTML,其中包含使用img标签嵌入的某些图片(本地文件)。问题是,当您加载时,需要花一秒钟的时间来加载,然后在页面底部显示滚动条。如果我做: 它会暂时设置滚动条,然后出现另一个主题(大概负责加载图像)并将滚动条打回到底部。我尝试添加: 但这并没有解决。有没有办法从任一得到一个事件或当窗格完成加载,这样我可以设置滚动条,然后会通知我吗?另一种
所以,这就是我的问题。我的recyclerview项目在底部有一个视图,我最初将其设置为消失。现在,当它们被点击时,我想让它们再次可见。所以在onClick方法中,我将视图设置为Visible。一切正常,但是当我向下滚动和向上滚动时,视图又隐藏了。我想这和取景模式有关。我想保持现状,即开放。我该怎么做?谢了。 视图支架: 点击: 编辑:上传的代码。此外,我尝试在onClick中更新Item的布尔值
我有以下代码来设置RecyclerView项目的动画。这工作得很好,但如果我向下滚动,它会为所有出现的项目设置动画。 我想要的是类似于Google Play音乐应用程序中的行为,其中动画仅为最初可见的项目播放。通过滚动变得可见的项目应该出现在没有动画适配器的情况下。知道如何存档这种行为吗?
前面我们讲了编译项目是对新产生变化的文件进行一次编译,已经编译过的文件就不用重编译了. 所以如果你想加快编译速度,可以设置项目自动编译. 操作步骤: Android Studio --> Preferences... --> 搜索Compiler --> 勾选Make project automatically