Tag: 5.0 lollipop

notifyDataSetChanged不能在RecyclerView上工作

我从服务器获取数据,然后parsing并将其存储在列表中。 我使用RecyclerView的适配器的这个列表。 我正在使用片段。 我正在用KitKat使用Nexus 5。 我正在使用支持库。 这会有所作为吗? 这里是我的代码:(使用虚拟数据的问题) 成员variables: List<Business> mBusinesses = new ArrayList<Business>(); RecyclerView recyclerView; RecyclerView.LayoutManager mLayoutManager; BusinessAdapter mBusinessAdapter; 我的onCreateView() : @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Getting data from server getBusinessesDataFromServer(); View view = inflater.inflate(R.layout.fragment_business_list, container, false); recyclerView = (RecyclerView) view .findViewById(R.id.business_recycler_view); recyclerView.setHasFixedSize(true); mLayoutManager = new LinearLayoutManager(getActivity()); recyclerView.setLayoutManager(mLayoutManager); […]

android:Theme.Material.Light需要API级别21(当前最less8)

我想在我的应用程序中使用Material Theme,它的最小sdk版本为8.根据文档 – “材料主题只在Android 5.0(API级别21)及以上版本中可用v7 Support Libraries提供了材料devise样式的主题一些小部件和支持自定义调色板。“ 这是否意味着我可以使用它,如果我在项目中添加v7支持Libarary? 因为添加这个库后,我得到了以下错误: android:Theme.Material.Light需要API级别21(当前最less8)。 或者,也许我明白了什么错误? 任何build议将不胜感激。 提前致谢。

Android v21 Theme.Appcompat颜色重音被忽略,对话框上没有填充

我从Android 5 SDK使用ActionBarActivity ,这里是我的v21的theme.xml <style name="AppTheme_Light" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="android:colorPrimary">@color/abc1</item> <item name="android:colorPrimaryDark">@color/abc2</item> <item name="android:colorAccent">@color/abc3</item> </style> 但是颜色被忽略,并且被默认的蓝绿色代替,所有的对话框都没有填充。 问题http://i62.tinypic.com/21cebcz.png 此外,在自定义烤面包等其他地方填充也被忽略,问题只发生在棒棒糖设备。 编辑: 填充问题是由于fitsSystemWindow和我得到它固定使用 这个问题。 。 但重音颜色问题仍然存在,它不只是影响对话框,而是整个应用程序。

Android L – 浮动操作button(FAB)

Google是否已经为这个新的圆形FABbutton发布了定义的样式或组件?还是应该自己实现这个devise? 这个button在这里描述: Google Design | 浮动操作button 编辑(05/2015):检查卢卡斯的答案 / 加布里埃尔的答案显示一个简单的方法来实现它与devise支持库。

材料devise向后兼容

从Android开发者页面提供的例子中,我发现像RecyclerView这样的新视图是向后兼容的( android.support.v7.widget.RecyclerView )。 材料devise中引入的所有新function是否向后兼容(到哪个版本)?

在Android 5.0(Lollipop)中如何以编程方式回答传入呼叫?

正如我试图创build一个自定义屏幕来电,我试图编程方式应答来电。 我正在使用下面的代码,但它不适用于Android 5.0。 // Simulate a press of the headset button to pick up the call Intent buttonDown = new Intent(Intent.ACTION_MEDIA_BUTTON); buttonDown.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HEADSETHOOK)); context.sendOrderedBroadcast(buttonDown, "android.permission.CALL_PRIVILEGED"); // froyo and beyond trigger on buttonUp instead of buttonDown Intent buttonUp = new Intent(Intent.ACTION_MEDIA_BUTTON); buttonUp.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK)); context.sendOrderedBroadcast(buttonUp, "android.permission.CALL_PRIVILEGED");

了解RecyclerView setHasFixedSize

我有一些麻烦了解setHasFixedSize() 。 我知道,当RecyclerView的大小没有改变时,它被用于优化,从文档。 这是什么意思? 在大多数情况下, ListView几乎总是有固定的大小。 在什么情况下,它不会是一个固定的大小? 这是否意味着它在屏幕上占有的实际房地产会随着内容而增长?

Android支持deviseTabLayout:重力中心和模式可滚动

我正在尝试在我的项目中使用新的Design TabLayout。 我希望布局适应每个屏幕大小和方向,但是可以在一个方向上正确地看到它。 我正在处理重力和模式设置我的tabLayout为: tabLayout.setTabGravity(TabLayout.GRAVITY_CENTER); tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE); 所以我期望如果没有空间,tabLayout是可滚动的,但是如果有空间的话,它是居中的。 从指南: 公共静态最终诠释GRAVITY_CENTER重力用于布局在TabLayout中心的标签。 public static final int GRAVITY_FILL重力用于尽可能地填充TabLayout。 此选项仅在与MODE_FIXED一起使用时才生效。 公共静态最终诠释MODE_FIXED固定选项卡并发显示所有标签,最适用于从标签之间的快速枢轴受益的内容。 选项卡的最大数量受限于视图的宽度。 固定标签具有相同的宽度,基于最宽的标签标签。 public static final int MODE_SCROLLABLE可滚动选项卡在任何给定时刻显示选项卡的子集,并且可以包含更长的选项卡标签和更多数量的选项卡。 当用户不需要直接比较标签标签时,它们最适合用于在触摸界面中浏览上下文。 所以GRAVITY_FILL只与MODE_FIXED兼容,但是在没有为GRAVITY_CENTER指定任何东西,我期望它与MODE_SCROLLABLE兼容,但这是我使用GRAVITY_CENTER和MODE_SCROLLABLE 所以它在两个方向都使用SCROLLABLE,但它不使用GRAVITY_CENTER。 这是我期望的景观。 但有这个,我需要设置MODE_FIXED,所以我得到的肖像是: 为什么如果tabLayout适合屏幕,GRAVITY_CENTER不能用于SCROLLABLE? 有没有什么办法来dynamic设置重力和模式(并看看我的期望)? 非常感谢你! 编辑:这是我的TabLayout的布局: <android.support.design.widget.TabLayout android:id="@+id/sliding_tabs" android:layout_width="match_parent" android:background="@color/orange_pager" android:layout_height="wrap_content" />

Android 5.0 – 添加页眉/页脚到RecyclerView

我花了一些时间试图找出一个方法来添加一个头到一个RecyclerView ,失败。 这是我到目前为止: @Override protected void onCreate(Bundle savedInstanceState) { … layouManager = new LinearLayoutManager(getActivity()); recyclerView.setLayoutManager(layouManager); LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); headerPlaceHolder = inflater.inflate(R.layout.view_header_holder_medium, null, false); layouManager.addView(headerPlaceHolder, 0); … } LayoutManager似乎是处理RecyclerView项目处置的对象。 由于找不到任何addHeaderView(View view)方法,我决定使用LayoutManager的addView(View view, int position)方法,并在第一个位置添加我的标题视图以像标题一样工作。 Aaand这是更丑陋的地方: java.lang.NullPointerException: Attempt to read from field 'android.support.v7.widget.RecyclerView$ViewHolder android.support.v7.widget.RecyclerView$LayoutParams.mViewHolder' on a null object reference at android.support.v7.widget.RecyclerView.getChildViewHolderInt(RecyclerView.java:2497) at android.support.v7.widget.RecyclerView$LayoutManager.addViewInt(RecyclerView.java:4807) at android.support.v7.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:4803) […]

工具栏上默认没有阴影?

我正在使用支持库v21中的新工具栏更新我的应用程序。 我的问题是,如果我不设置“高度”属性,工具栏不会投射任何阴影。 这是正常的行为还是我做错了什么? 我的代码是: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/my_awesome_toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary" android:elevation="4dp" android:minHeight="?attr/actionBarSize" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> <FrameLayout android:id="@+id/FrameLayout1" android:layout_width="match_parent" android:layout_height="match_parent"> . . . 在我的Activity – OnCreate方法中: Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar); setSupportActionBar(toolbar);