Android支持库包含来自较新平台和提供实用程序功能的API的反向移植API。
RequiresApi 与 TargetApi android 注释
RequiresApi 和 TargetApi 有什么区别? 科特林示例: @RequiresApi(api = Build.VERSION_CODES.M) @TargetApi(Build.VERSION_CODES.M) 类 FingerprintHandlerM() : FingerprintMana...
NotificationCompat.Builder setLargeIcon() 不起作用?
当我添加代码 mNotificationBuilder.setLargeIcon(BitmapFactory.decodeResource( getResources(), R.drawable.ic_large_icon));根据我的通知,它停止工作,没有错误或警告。这……
我终于成功将 Android 支持库中的 VerticalGridView 添加到我的项目中。 现在的问题是网格水平和垂直滚动! 这是我的来源: 我终于成功将 Android 支持库中的 VerticalGridView 添加到我的项目中。 现在的问题是网格水平和垂直滚动! 这是我的来源: <android.support.v17.leanback.widget.VerticalGridView android:id="@+id/my_recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="vertical" /> 和java代码: mRecyclerView = (VerticalGridView) rootView.findViewById(R.id.my_recycler_view); mRecyclerView.setHasFixedSize(true); mRecyclerView.setNumColumns(4); mRecyclerView.setVerticalMargin(24); 我已经找到了解决这个问题的方法。您只需将 android.support.v7.widget.GridLayoutManager 设置为 VerticalGridView 的布局管理器,如下所示(请注意,列数在构造函数中传递): mRecyclerView = (VerticalGridView) rootView.findViewById(R.id.my_recycler_view); mRecyclerView.setLayoutManager(new GridLayoutManager(context, 4)); mRecyclerView.setHasFixedSize(true); mRecyclerView.setVerticalMargin(24); 无论你选择哪一个,你都可以拿着这个列表双向滚动,感觉就像可以在屏幕上移动一样。必须有一种方法可以禁用一个方向的滚动 有办法处理吗? 在使用扩展 VerticalGridSupportFragment 的片段时,我遇到了同样的问题。解决方案是使用自定义 VerticalGridPresenter,并在此应用自定义 GridLayoutManager。 在你的片段中: VerticalGridPresenter gridPresenter = new CustomVerticalGridPresenter(FocusHighlight.ZOOM_FACTOR_SMALL, false); CustomVerticalGridPresenter 类: public class CustomVerticalGridPresenter extends VerticalGridPresenter { public CustomVerticalGridPresenter(int focusZoomFactor, boolean useFocusDimmer) { super(focusZoomFactor, useFocusDimmer); } @SuppressLint("ClickableViewAccessibility") @Override protected ViewHolder createGridViewHolder(ViewGroup parent) { ViewHolder vh = super.createGridViewHolder(parent); VerticalGridView gridView = vh.getGridView(); // Apply our custom LayoutManager that disables horizontal scrolling NoHorizontalScrollGridLayoutManager layoutManager = new NoHorizontalScrollGridLayoutManager( parent.getContext(), getNumberOfColumns()); gridView.setLayoutManager(layoutManager); return vh; } } NoHorizontalScrollGridLayoutManager 类: public class NoHorizontalScrollGridLayoutManager extends GridLayoutManager { public NoHorizontalScrollGridLayoutManager(Context context, int spanCount) { super(context, spanCount); } @Override public boolean canScrollHorizontally() { // Return false to prevent horizontal scrolling return false; } @Override public boolean canScrollVertically() { // Allow vertical scrolling return true; } } 在leanback lib中有两个类:1.VerticalGridView 2.HorizontalGridView 你可以使用 HorizontalGridView 进行水平滚动
如何减少操作栏 homeasup 按钮和操作栏标题之间的间距? 它过去的间距较小,但不知何故间距增加了。我没有对 xml 进行任何更改...
我正在做一个android项目,它应该支持2.2(froyo)及更高版本的所有android设备。我正在尝试在我的项目中使用 Android 材料设计。为了支持材料...
这是参考 build.gradle 文件中出现的警告消息: 所有 com.android.support 库必须使用完全相同的版本 规范(混合版本可能会导致运行时c...
我的应用程序是当我使用按钮时打开pdf书,并且pdf文件的大小很小,只有1MB! 这是我的依赖项: 依赖项{ 实现 fileTree(dir: 'libs', include: ...
我想在每个选项卡之间设置边距。就像在 PagerTabStrip 中一样,它有 setTextSpacing(int textSpacing) 来在选项卡之间设置文本间距。 TabLayout 可以吗?
嗨,我正在尝试导入新的 Android 支持库,例如 com.android.support:support-design:22.0.0 但在同步 gradle 后我收到此错误:找不到
在多视图类型场景中滚动时,Recyclerview 项目会发生变化
嗨,我正在使用 recyclerview 来处理列表的多视图类型 但是当我滚动时,单元格有时会发生变化 我参考了很多SO的答案,但没有用 也覆盖 getitemid 但是
RecyclerView GridLayoutAdapter - 如何居中项目
我正在将 RecyclerView 与 GridLayoutAdapter 一起使用。是否可以将项目水平或垂直居中? 我的项目布局: 我正在将 RecyclerView 与 GridLayoutAdapter 一起使用。是否可以将项目水平或垂直居中? 我的物品布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="horizontal"> <ImageView android:id="@+id/item_photo_image_view" android:layout_width="@dimen/custom_photo_item_size" android:layout_height="@dimen/custom_photo_item_size" android:background="@drawable/custom_image_background" tools:src="@drawable/gallery_list_cars"/> </LinearLayout> 实际上是这样的:http://oi61.tinypic.com/34pjmtc.jpg 所需的布局应如下所示:http://oi62.tinypic.com/7e2t.jpg 将RecyclerView设置为wrap_content不起作用,它仍然使用所有可用空间。我想在 RecyclerView 中设置子重力应该是 LayoutManager 的责任。 你已经用那行做了: android:gravity="center" 有了这条线,您已经将 ImageView 水平和垂直居中了。 如果您只想要其中之一,请使用例如: android:gravity="center_horizontal" 我不知道你的问题到底是什么,我们甚至不知道 android:layout_width="@dimen/custom_photo_item_size" 您的 dimensions.xml... 中声明了哪个值 如果您想将整个Item居中,您需要声明: android:layout_gravity="Center" 但这没有任何意义,因为您在 GridView-Cell 中只有一种布局,并且您将 Item 的 rootView 声明为 android:width="match_parent" android:height="match_parent" 所以这只是给您的信息;) 如果您需要更好的支持,请提供更多信息。无论如何希望它有帮助 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal"> Adapter的xml父布局集 安卓:layout_width =“match_parent” 机器人:layout_gravity =“center_horizontal”
Android - 从 Fragment 中为 ActionBar 图标设置动画时出现问题
我在应用程序的 ActionBar 中持续设置“刷新”图标动画时遇到一些问题。 我有一个容器 FragmentActivity,当用户浏览...时,它会交换片段。
在我的应用程序中,我有单个活动和所有其他片段 我正在从 style.xml 设置活动背景,如下所示 @color/very_light_gray 在我的应用程序中,我有单个活动和所有其他片段 我正在从 style.xml 设置活动背景,如下所示 <item name="android:windowBackground">@color/very_light_gray</item> 现在,对于一个特定的片段,我想将背景设置为透明,但我无法做到这一点,在片段中尝试的以下代码对我不起作用 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // create ContextThemeWrapper from the original Activity Context with the custom theme final Context contextThemeWrapper = new ContextThemeWrapper(getActivity(), R.style.yourCustomTheme); // clone the inflater using the ContextThemeWrapper LayoutInflater localInflater = inflater.cloneInContext(contextThemeWrapper); // inflate the layout using the cloned inflater, not default inflater return localInflater.inflate(R.layout.yourLayout, container, false); } 知道怎么做吗? 这不是完美的解决方案,但它有效 不要使用 Fragment,而是使用 DialogFragment //exploreCategory is argument class MyFragment(val exploreCategory: ExploreCategory) : DialogFragment() { override fun onStart() { super.onStart() setWindowParams() } private fun setWindowParams(){ dialog?.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) dialog?.window?.setLayout( LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT ) } } 剩余代码与您在片段中编写的代码相同 要在片段中显示使用下面的代码,如果在活动中显示则使用fragmentManager MyFragment(exploreCategory).show(childFragmentManager,null) //exploreCategory is argument, you can choose to send no arguments 创建回调并在 Acitvity 中实现它 interface OnFragmentDisplay{ onFragmentDisplay(); } 当此片段显示时将活动背景更新为透明..或在活动中将其设置为主题 请参阅 此链接 和 此 可能会有所帮助 你试过这个吗 fragment.getView().setBackgroundColor(Color.WHITE); 在样式应用程序中使用 null 作为颜色 <item name="android:windowBackground">null</item> 您的 Activity 容器布局背景应该是透明的。然后为Fragment的布局设置背景颜色。对于特定片段的布局,设置透明颜色以获得您所需的场景。 简单的方法是为该特定片段的根布局设置背景颜色,如下所示 android:background="@android:颜色/透明" 因此,假设您希望活动和片段对于特定片段是透明的(不太清楚这是否是您想要的问题,但我假设它是)..您需要设置“当“透明”片段附加到它时,“主机”活动背景变为透明。当任何其他片段附加到它时,您将需要重置活动背景,否则它将保持透明.. 有几种方法可以做到这一点,但我将选择“相当”简单的方法: 在你的透明片段中: @Override public void onStart() { super.onStart(); // I'm using null here because drawing nothing is faster than drawing transparent pixels. getActivity().getWindow().setBackgroundDrawable(null); getView().setBackground(null); } @Override public void onStop() { super.onStop(); getActivity().getWindow().setBackgroundDrawable(new ColorDrawable(@color/very_light_gray)); } 不完全确定这是否是您想要的效果。 祝你好运。 亲切的问候, 希杰 您必须将您的 Activity 也设置为透明。 android:background="@android:color/transparent" 由于您的 Activity 有 @color/very_light_gray,即使您将 Fragment 设置为 @android:color/transparent 也不起作用。 每个视图必须有透明背景以避免重叠。 在实例化片段时,您可以在活动中使用类似下面的代码。您可以使用自己的颜色来代替 Color.White。 fragment.getView().setBackgroundColor(Color.WHITE); 在代码中添加这一行 getActivity().getWindow().setBackgroundDrawableResource(R.drawable.my_drawable); 将活动布局的样式设置为 <style name="RootLayout" parent="AppTheme"> <item name="android:background">@drawable/app_transparent_background</item> </style> 并将其在 Activity 的父布局中设置为 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" style="@style/RootLayout" ...> 在其他要设置白色或其他彩色背景的片段中,在这些片段的主布局中设置不同的样式。 会起作用的 您刚刚在代码下面设置了布局片段的背景: <LinearLayout ... android:background="@android:color/transparent"/> 两步: 第一步 - 创建一个具有透明背景的视图(在 XML 文件中)。 在android studio中,找到“res”文件夹,右键单击它,new -> android resource file。比在出现的对话框中输入: File name:{这里放任何东西。例如 - “my_fragment”(不带引号)}请注意,只有小写字母、数字和下划线才可以 Resource type: 布局 Root element: LinearLayout(在您学会更好地了解 XML 布局之后,您可以在此处放置其他任何内容) Source set:主要 Directory name:布局。 在出现的窗口中切换到“文本”模式而不是“设计”(查找屏幕左下角的选项卡)。 而不是复制粘贴它而不是文件的内容(它非常相似,我们只是在此处添加“透明”背景): <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent" > </LinearLayout> 第二步 - 在片段中膨胀此布局。 创建扩展 Fragment 的片段类并重写 onCreateView() 方法,在该方法内膨胀您的视图并返回它: public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) // assuming you named your xml file "my_fragment": // for other names replace R.layout.my_fragment with R.layout.put_your_name_here View view = inflater.inflate(R.layout.my_fragment, container, false); return view; } 当然,不要忘记在活动中创建片段的实例!
背景 谷歌最近发布了其支持库的更新,现在有一个新的“SwipeRefreshLayout”视图。 该视图允许包裹另一个视图,同时支持向下滑动...
enum vs android @Intdef - 哪一个优化得更好
我知道,当将常量与枚举进行比较时,常量占用的空间更少并且可以是原始的。我正在研究android中的@Intdef注释,有人可以告诉我使用@是否更好的存储
Android MenuProvider 在恢复带有片段的活动时乱序添加菜单项?
有人看过这个吗?感觉像是 Android MenuProvider 中的一个错误。 活动 A 具有菜单项 1 和 2。 活动 A 中的片段 A 具有菜单项 3 和 4。菜单项的顺序为:1,2,3,4
找不到com.android.support:support-v4:22.0.0。 SDK更新后
sdk 更新后,我无法创建 hello world 应用程序。 我的 build.gradle 看起来像这样 应用插件:'com.android.application' 安卓 { 编译SDK版本22 构建工具Ve...
Facebook SDK for Android 依赖项上的重复支持库
我已经实现了新的 Facebook SDK 3.0 beta。该库项目包含 Android 支持库 v4。我自己的项目上也有支持库(尽管版本不同)。当我...
Android BottomSheetDialogFragment 未完全展开
我有以下测试底表实现。 当我将 peekHeight 设置为小于 500 的值时,它可以工作。在达到某个值后,窥视高度的任何增加都不会改变底部的形状...
由于违反位置权限政策,我们的应用程序已从 Play 商店中删除。根据他们的拒绝邮件,我们一直在使用用户的后台位置,但实际上...