布局定义用户界面的可视结构,例如活动,片段或应用程序窗口小部件的UI。
我有主活动、主页活动,位于启动器应用程序端(.apk)。 PlayActivity、Profile 和 Init 位于库端 (.aar) 从服务器端将触发 1 条消息,然后我想...
我正在尝试保存当前活动的屏幕截图,但不是整个视图,只是其中的一部分。 就我而言: 我的活动 在附图中,我想保存从视图 B、C 和...构建的位图
Uber 有一篇文章 https://www.uber.com/en-DE/blog/live-activity-on-ios/ 他们说他们用进度条发出了通知。我知道这篇文章说的是关于 iOS 的,但是有...
我想制作一个带有缩放选项的扫雷应用程序(Android/Java),100%或200% - 目前没有可变缩放,没有缩放手势。 我可以创建一个宽度和高度是屏幕两倍大的视图吗?
当我把bottomnavigationview android studio |设计屏幕显示为空白
当我把bottomnavigationview android studio |设计屏幕显示为空白 活动_main.xml 当我把bottomnavigationview android studio |设计屏幕显示为空白 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <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="match_parent" tools:context=".MainActivity"> <com.google.android.material.bottomnavigation.BottomNavigationView android:layout_width="match_parent" android:layout_height="match_parent" /> </androidx.constraintlayout.widget.ConstraintLayout> MainActivity.java package com.example.chatsapp; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } 在此输入图片描述 您需要更改底部导航抽屉的高度 match_parent 到wrap_content。 还向底部导航抽屉视图添加约束。 <com.google.android.material.bottomnavigation.BottomNavigationView android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" />
任何人都知道我如何创建这种工具提示。我需要它包含一个 TextView 和一个 ImageView 。有没有这个库,因为我找不到。 预先感谢。
我需要在设置菜单中添加Facebook,如下图所示。那么如何将新项目添加到设置菜单我试图解决这个问题,只是我在 res > value > string.xml &... 找到了设置菜单
我已经在已经工作的活动上创建了导航抽屉。我将一些按钮从顶部移至导航抽屉。现在导航抽屉工作正常。它滑动并且点击侦听器也可以工作...
我只是想使用自动图像滑块,但在添加所有依赖项和其他要求(如 jitpack.io)后,我仍然无法使用自动图像滑块的 sliderLayout,现在我尝试了...
我正在尝试创建一个自定义“警告”对话框,我希望其中有圆角。因此,我将整个布局放入 CardView 中,并将对话框的布局设置为此布局。
我正在尝试创建这种效果 我正在使用回收器视图,但我的问题是,每张卡片都是屏幕宽度的 100%,而不是 70%。 这是每个项目的 xml 代码 我正在尝试创建这种效果 我正在使用回收器视图,但我的问题是每张卡片都是屏幕宽度的 100%,而不是 70%。 这是每个项目的 xml 代码 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/rowLayout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="@dimen/scale_20dp"> <LinearLayout android:id="@+id/button_parent" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <android.support.v7.widget.CardView android:id="@+id/card_view" android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:id="@+id/currentYear" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@drawable/paymentscreengrey" android:gravity="center" android:orientation="vertical" android:paddingLeft="35dp" android:paddingTop="@dimen/scale_50dp"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/scale_20dp" android:text="**** **** **** 5432" android:textColor="@color/white" android:textSize="@dimen/scale_20dp" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="2345" android:textColor="@color/white" android:textSize="@dimen/scale_16dp" /> 如果您希望第一个项目左对齐(即重现屏幕截图中的内容),请子类 LinearLayoutManager 并重写三个 generate*LayoutParams 方法。我是这样做的:https://gist.github.com/bolot/6f1838d29d5b8a87b5fcadbeb53fb6f0. class PeekingLinearLayoutManager : LinearLayoutManager { @JvmOverloads constructor(context: Context?, @RecyclerView.Orientation orientation: Int = RecyclerView.VERTICAL, reverseLayout: Boolean = false) : super(context, orientation, reverseLayout) constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes) override fun generateDefaultLayoutParams() = scaledLayoutParams(super.generateDefaultLayoutParams()) override fun generateLayoutParams(lp: ViewGroup.LayoutParams?) = scaledLayoutParams(super.generateLayoutParams(lp)) override fun generateLayoutParams(c: Context?, attrs: AttributeSet?) = scaledLayoutParams(super.generateLayoutParams(c, attrs)) private fun scaledLayoutParams(layoutParams: RecyclerView.LayoutParams) = layoutParams.apply { when(orientation) { HORIZONTAL -> width = (horizontalSpace * ratio).toInt() VERTICAL -> height = (verticalSpace * ratio).toInt() } } private val horizontalSpace get() = width - paddingStart - paddingEnd private val verticalSpace get() = height - paddingTop - paddingBottom private val ratio = 0.9f // change to 0.7f for 70% } 此解决方案基于跨度(即,使所有项目适合屏幕)线性布局管理器/受到启发https://gist.github.com/heinrichreimer/39f9d2f9023a184d96f8。 顺便说一句,如果您只想向左和向右显示项目,而当前项目居中,则可以向回收器视图添加填充并将 clipToPadding 设置为 false。在这种情况下,您甚至不需要自定义布局管理器。 <androidx.recyclerview.widget.RecyclerView android:id="@+id/recycler_view" android:paddingStart="16dp" android:paddingEnd="16dp" android:clipToPadding="false" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"> 我需要让水平 RecyclerView 中的项目达到 RecyclerView 宽度的 70%。可以轻松完成onCreateViewHolder(): override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { val view = LayoutInflater.from(context).inflate(R.layout.row, parent, false); view.layoutParams = ViewGroup.LayoutParams((parent.width * 0.7).toInt(),ViewGroup.LayoutParams.MATCH_PARENT) return ViewHolder(view); } 有两种方法可以做到这一点。 1)为回收视图使用自定义视图。 重写 onMeasure 以将其宽度返回为屏幕的 70%。 2)在 Recycler View 适配器中,创建视图时将其宽度设置为屏幕宽度的 70%。 无论哪种情况,您都可以从显示屏获取屏幕尺寸,只需将宽度乘以 0.7 即可。 在第一种情况下,您将其设置为精确测量的宽度,在第二种情况下,您将其设置在布局参数中。 第二个可能更容易一些。 我遇到了类似的问题,我有一个带有水平 RecyclerView 的片段,并希望每个视图项的宽度为用户屏幕的三分之一。通过在 ViewHolder 类的构造函数中添加以下内容来解决这个问题(在我的例子中,我希望每个视图持有者是屏幕的 1/3 而不是 70%): private class OurViewHolder extends RecyclerView.ViewHolder { ... public OurViewHolder (LayoutInflater inflater, ViewGroup parent) { super (inflater.inflate (R.layout.list_item_layout, parent, false)); // This code is used to get the screen dimensions of the user's device DisplayMetrics displayMetrics = new DisplayMetrics(); getActivity().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); int width = displayMetrics.widthPixels; int height = displayMetrics.heightPixels; // Set the ViewHolder width to be a third of the screen size, and height to wrap content itemView.setLayoutParams(new RecyclerView.LayoutParams(width/3, RecyclerView.LayoutParams.WRAP_CONTENT)); ... } ... 对于 row.xml 父级,您必须使用 wrap_content 作为其宽度,然后添加此属性。 android:paddingLeft="25dp" 你会得到同样的结果 刚刚从this答案中更新了一点,添加了边距并从资源中获取了displayMetrics以使其干净: inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { fun bind(product: StyleMaster) = with(itemView) { val width = context.resources.displayMetrics?.widthPixels if (width != null) { val params = RecyclerView.LayoutParams(width / 2, RecyclerView.LayoutParams.WRAP_CONTENT) params.setMargins(2, 2, 2, 2) itemView.layoutParams = params } // Rest of the code goes here... @NonNull @Override public MyHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.list_item_layout,parent,false); ViewGroup.LayoutParams layoutParams = view.getLayoutParams(); layoutParams.width = (int) (parent.getWidth() * 0.7); view.setLayoutParams(layoutParams); return new MyHolder(view); } 尝试用 LinearLayout 更改 PercentRelativeLayout 以“包裹”RecyclerView,然后将其宽度设置为 70%。 更改此: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/rv" /> </LinearLayout> 有了这个: <android.support.percent.PercentRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:layout_width="0dp" android:layout_height="match_parent" app:layout_widthPercent="70%" android:id="@+id/rv" /> 编辑 由于 Percent 支持库随 Android 支持库 23 一起提供,因此请确保您已将 SDK Manager 中的 Android 支持库更新到最新版本(实际上是 24)。然后在 build.gradle 文件中添加如下所示的依赖项: compile 'com.android.support:percent:24.0.0'
我的问题与这里描述的完全一样: Android:配置 .xml 必须与根元素的 ID 一致 我明白了这个问题的解决方案。 然而,我不能接受的是...
任何人都使用过 android-target-instructions 并添加了一个跳过按钮来跳过剩余步骤
我正在尝试实现 android-target-instructions 库,当用户单击库中的跳过按钮时,我想跳过它,它说 .finish() 要跳过,但没有发生任何事情,有人可以帮忙吗? 我...
当我单击 TextInputEditText(它是以编程方式添加到 AlertDialog 的 LinearLayout 的父级)时,我的键盘不显示(在多个设备上测试) 首先,我创建一个新的 LinearLa...
我目前正在使用 Devsmartlib.jar 库。 这是我的 act.xml 文件中的内容: 我目前正在使用 Devsmartlib.jar 库。 这是我的 act.xml 文件中的内容: <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:gravity="right"> <com.devsmart.android.ui.HorizontalListView android:id="@+id/hlistview" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="right" /> </LinearLayout> 我想从右到左显示我的列表,但它不起作用。 请帮助我。 这段代码可以工作! mLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, true); mRecyclerView.setLayoutManager(mLayoutManager); 如果您尝试修改宽度以为圆圈提供空间,您可以在实际项目中执行此操作。如果您认为每个项目中的圆圈周围需要更多空间,请编辑各个项目的 XML 并将其添加到您拥有的圆圈的 ImageView 中: android:padding = "6dp" 或者任何你认为看起来更好的尺寸,让圆圈不那么拥挤。 您的另一个主要选项是将其添加到您的实际 ListView XML: android:minWidth="50dp" 或任何看起来合适的值。这将为每个视图设置最小宽度。不过,我建议使用上面提到的视图的 XML,因为这是一个更通用的扩展解决方案。 您可以在此处的 Android 文档中阅读有关 android:minWidth 的更多信息。 <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:gravity="right"> <com.devsmart.android.ui.HorizontalListView android:id="@+id/hlistview" android:layout_width="fill_parent" android:layout_height="wrap_content" android:stackFromBottom="true" //<==Add this android:layout_gravity="right" /> </LinearLayout>
我在运行时视图上设置带有边距的约束时遇到了某种麻烦。 这些是向用户显示视图时的 y 坐标和边距坐标 我这样设置边距:
我在一个具有 3 列和 2 行的片段中有一个 GridLayout。第一个单元格中的文本长度有所不同。我将第一个单元格内的 TextView 设置为 maxLines=1 和 ellipsize=end。 我的问题是...
为什么我的findViewById在这里返回null swipeRefreshLayout = findViewById(R.id.swipeRefreshLayoutDashboard);? 我已经尝试过使用 .getRootView() 并自己沿着层次结构向下移动,但是......
我有需要放入asstes文件夹中的PDF文件列表,我的要求是从asstes中读取文件并将其显示在列表视图中。 如果我们点击每个列表项需要阅读相应的 PDF 文件 我
Jetpack Compose 数字墨水识别精度比 XML 布局差很多:为什么?
我尝试使用 Jetpack Compose 将数字墨水识别集成到 Android 应用程序中,但我注意到与使用 XML 布局相比,识别的准确性明显较低。