- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在创建一个音乐播放器应用程序。我的音乐库 Activity 是一个 ViewPager
,有四个页面/fragment (对应于专辑、艺术家、所有歌曲和播放列表)。其中三个 fragment 只是 GridView
,最后一个 fragment 是 ListView
(所有歌曲 fragment )。当应用程序首次启动时,一切都运行得非常顺利。但是,当用户选择要播放的歌曲(第一次)时,会在屏幕底部动态创建一个 LinearLayout
(称为“正在播放栏”),其中包含有关当前正在播放的信息歌曲。在这一点上,我所有的 GridView
和我的 ListView
在滚动时开始严重滞后。奇怪的是,我的 ViewPager
似乎没有遇到任何延迟,因为在 Fragment
之间切换与以前一样无缝。当用户退出播放器然后继续播放时,此问题仍然存在(在这种情况下“正在播放栏”已经可见)。
所有这一切还有另一个相当困惑的因素。当用户从库中选择专辑、艺术家或播放列表时,这将创建一个新 Activity ,它只是一个 ListView
,其中包含所述艺术家/专辑/播放列表中的所有歌曲。 “正在播放栏”也被添加到此 Activity 中,但它不会导致任何减速。这使我得出结论,问题与我的库 Activity 中的 ViewPager
和/或 Fragment
有关。
我完全被这个难住了,非常感谢任何帮助。
这是我的图书馆 Activity 的 XML 布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@id/library_view"
>
<include layout="@layout/sd_error"/>
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1.0"
/>
<include layout="@layout/now_playing_bar"/>
下面是用于创建“正在播放栏”的代码:
public static void updateNowPlaying(Activity a)
{
View nowPlayingView = a.findViewById(R.id.now_playing_bar);
if (nowPlayingView == null)
return;
try
{
if (true && MusicUtils.sService != null && MusicUtils.sService.getAudioId() != -1)
{
ImageView cover = (ImageView) nowPlayingView.findViewById(R.id.cover);
TextView title = (TextView) nowPlayingView.findViewById(R.id.title);
TextView artist = (TextView) nowPlayingView.findViewById(R.id.artist);
title.setText(MusicUtils.sService.getTrackName());
String artistName = MusicUtils.sService.getArtistName();
if (MediaStore.UNKNOWN_STRING.equals(artistName))
artistName = a.getString(R.string.unknown_artist_name);
artist.setText(artistName);
cover.setImageURI(ContentUris.withAppendedId(
sArtworkUri, sService.getAlbumId()));
if (cover.getDrawable() == null)
cover.setImageResource(R.drawable.no_album_cover);
nowPlayingView.setVisibility(View.VISIBLE);
nowPlayingView.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Context c = v.getContext();
c.startActivity(new Intent(c, PlayerActivity.class));
}
});
return;
}
}
catch (RemoteException ex) {}
nowPlayingView.setVisibility(View.GONE);
}
最佳答案
好的,事实证明延迟的原因是因为我有 android:layout_height="match_parent"
和 android:layout_weight="1.0"
。显然,如果您这样设置权重,您应该使用 android:layout_height="0dp"
以获得更好的性能。我完全不知道为什么会这样,但它解决了问题。
关于Android:动态添加 View 到 LinearLayout 时 AdapterView 滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18102246/
当我打算执行 thirdactivity.class 时,Logcat 会这样说,这是什么意思?该 Activity 已建成。但是当模拟时,程序停止了。 11-11 10:17:25.824: E/A
我的代码显示此错误...AdapterView 是原始类型。 AdapterView 泛型类型 AdapterView 的引用应该被参数化,我该怎么办? public void onItemClick
我正在实现 AdapterView产生一个AbsListView -like 类,我可以使用 CursorAdapter在布局中。我正在实现这个,因为我想使用方便的自动数据更新行为 CursorAda
在我的小部件中,当 ListView 中的一个项目被长按时,我希望启动该项目(然而,在我目前的编码中,正常的点击也可以做到这一点,但现在我正在让长按做一些事情这样我就可以设置它以供以后需要更改长按的功
我创建了扩展“AdapterView”的类 A,并创建了扩展“BaseAdapter”以提供数据的类 D。 问题是每个 AdapterView 项目都没有将其长度拉伸(stretch)到 Adapte
所以我为我正在使用的饼图 View 创建了一个自定义 AdapterView。我不确定我做错了什么,但当我尝试旋转饼图时,饼图非常不稳定。我怀疑正在进行太多绘图,因为 traceview 显示对 Ca
我的 ListView 有一个 OnItemClickListener,如下所示: OnItemClickListener myClickHandler = new OnItemClickListen
我正在尝试(出于学习目的)我自己实现一个简单的 AdapterView,其中项目来自基本适配器(来自 sdk 示例的 ImageAdapter)。 实际代码是这样的: public class
在我的应用程序中,我实现了一个抽屉导航,它显示支票簿的银行账户列表。我编写了一个处理此列表的 AccountAdapter 类,并在我的 NavigationDrawerFragment 类中使用以下
我的应用程序的 MainActivity 中有一个抽屉导航。在此 Activity 中,设置了 AdapterView。当我单击适配器的某一行时,我希望打开一个新 Activity ,但位于同一个抽屉
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 7 年前。 Improve th
我一直在关注许多关于如何优化像画廊这样的列表的教程,但是我无法让我的适配器重新循环 View 。这是我的代码: @Override public View getView(int position,
如果字符串显示在 listAdapter 的多个项目之一中,是否可以使用 android-espresso 进行验证? 尝试这样的事情: onData(anything()).inAdapterVie
这是我的问题,我有这样的类架构: Activity fragment RecyclerView(有一个适配器) 适配器: 有一个 ViewHolder 类: public static class N
我使用的是 Gallery View ,其中对应于每个项目的 View 非常重要,由文本和多个按钮组成。 当我单击以拖动画廊 View (不在其中一个按钮上的某处)时,按钮的可绘制状态变为已按下,并且
我有一个动态列表,我想在带有单选按钮的适配器 View 中显示该列表。在一组。 我用过: public class Type2Adapter extends BaseAdapter{ Cont
如标题:我想知道如何获取我的 AdapterView 中所有当前显示的项目的列表(数组)。 为什么?在我的 AdapterView 中显示的对象需要在用户关闭 AdapterView 后释放一个监听器
我尝试设置 AdapterView.OnItemClickListener 来工作,但它不断出现错误,我似乎找不到有效的答案。 mListView.setOnClickListener(new Ada
我创建了一个使用 LayoutInflater 的 Adapter arraylist,以便图像保持比例。我正在尝试对所选项目标题(即“牛肉”)进行简单的 toast 。一切都按预期工作,除了我从 t
我通过扩展 AdapterView 创建了一个自定义的 ListView,我想在这个 View 中处理关键事件。我已经覆盖了 onKeyDown,但从未看到它被调用。我什至尝试覆盖 dispatchK
我是一名优秀的程序员,十分优秀!