布局定义用户界面的可视结构,例如活动,片段或应用程序窗口小部件的UI。
在 React Native 中嵌入原生 Android Activity
我正在使用这个库在 android 中以 React Native 方式制作标签栏 https://github.com/aksonov/react-native-tabs 我必须在其中一个页面中打开本机 Android 活动。 可以请告诉我吗...
所以基本上我想在android电视上运行一些本机android应用程序,一些应用程序只是不能在水平模式下工作,除非应用程序有视频并且是全屏的,所以应用程序是否有可能认为...
Android:手机和平板电脑之间很难实现相同的布局比例/长宽比
当我说“相同的布局比例”时,我主要指的是文本大小,但也指一般的视图。 我一直读到 sp 文本大小单位与屏幕无关,但这不是
在以下 xml 中,“message_entry”在小屏幕 (240 x 320) 上显示太窄,但在较大屏幕 (480 x 640) 上显示良好。 在以下 xml 中,“message_entry”在小屏幕 (240 x 320) 上显示太窄,但在较大屏幕 (480 x 640) 上显示良好。 <androidx.cardview.widget.CardView android:id="@+id/reply_bar_card" android:layout_width="match_parent" android:layout_height="wrap_content" app:cardBackgroundColor="@color/replyBarCard" app:cardCornerRadius="24dp" app:cardElevation="5dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingBottom="24dp"> <ProgressBar android:id="@+id/send_progress" style="@style/Widget.AppCompat.ProgressBar.Horizontal" android:layout_width="match_parent" android:layout_height="3dp" android:indeterminate="true" android:visibility="invisible" /> <HorizontalScrollView android:id="@+id/attached_image_scroller" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="@dimen/message_list_padding" android:layout_marginEnd="@dimen/message_list_padding" android:paddingTop="8dp" android:paddingBottom="8dp" android:scrollbars="none" android:visibility="gone"> <LinearLayout android:id="@+id/attached_image_holder" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="12dp" android:layout_marginEnd="12dp" android:orientation="horizontal" /> </HorizontalScrollView> <LinearLayout android:id="@+id/smart_reply_container" android:layout_width="match_parent" android:layout_height="56dp" android:layout_marginStart="@dimen/message_list_padding" android:layout_marginEnd="@dimen/message_list_padding" android:gravity="end" android:orientation="horizontal" android:visibility="gone"> <ImageButton android:id="@+id/close_smart_replies" android:layout_width="32dp" android:layout_height="48dp" android:layout_gravity="center_vertical" android:layout_marginStart="8dp" android:background="?selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/use_smart_replies" android:src="@drawable/ic_cancel" android:tint="@color/secondaryText" /> <LinearLayout android:id="@+id/smart_reply_suggestions_container" android:layout_width="0dp" android:layout_height="match_parent" android:layout_marginEnd="12dp" android:layout_weight="1" android:gravity="end" android:orientation="horizontal" /> </LinearLayout> <LinearLayout android:id="@+id/send_bar" android:layout_width="match_parent" android:layout_height="50dp" android:layout_marginStart="@dimen/message_list_padding" android:layout_marginEnd="@dimen/message_list_padding" android:alpha="0" android:clipToPadding="false" android:gravity="center_vertical|start" android:orientation="horizontal" android:padding="8dp" android:translationY="-32dp"> <ImageButton android:id="@+id/select_sim" android:layout_width="32dp" android:layout_height="48dp" android:background="?selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/select_sim" android:src="@drawable/ic_sim" android:tint="@color/secondaryText" android:visibility="gone" /> <ImageButton android:id="@+id/view_scheduled_messages" android:layout_width="32dp" android:layout_height="match_parent" android:background="?selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/view_scheduled_messages" android:src="@drawable/ic_schedule_small" android:tint="@color/secondaryText" android:visibility="gone" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_marginEnd="8dp"> <ImageButton android:id="@+id/attach" android:layout_width="32dp" android:layout_height="48dp" android:layout_gravity="center_vertical|start" android:background="?selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/attach" android:src="@drawable/ic_attach" android:tint="@color/secondaryText" /> <TextView android:id="@+id/text_counter" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom|center_horizontal" android:layout_marginBottom="2dp" android:gravity="center_horizontal" android:textColor="@color/secondaryText" android:textSize="12sp" /> </FrameLayout> <com.google.android.material.textfield.TextInputEditText android:id="@+id/message_entry" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@null" android:backgroundTint="@color/drawerBackground" android:hint="@string/type_message_to" android:imeOptions="actionSend|flagNoExtractUi" android:inputType="textCapSentences|textAutoCorrect|textMultiLine" android:maxLines="@integer/message_list_fragment_line_entry_count" android:minHeight="40dp" android:padding="8dp" android:paddingStart="8dp" android:paddingEnd="18dp" android:scrollHorizontally="false" android:textSize="16sp" /> <com.google.android.material.floatingactionbutton.FloatingActionButton android:id="@+id/send" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginEnd="8dp" android:contentDescription="@string/send_message" android:src="@drawable/ic_send" app:elevation="0dp" app:fabSize="mini" app:rippleColor="@android:color/white" /> </LinearLayout> <ViewStub android:id="@+id/attach_stub" android:layout_width="match_parent" android:layout_height="@dimen/attach_menu_height" android:layout="@layout/view_attach_menu" /> </LinearLayout> </androidx.cardview.widget.CardView> 小屏幕:(添加红框用于说明) 大屏幕:(添加红框作为说明) 预期的行为就像大屏幕,其中“message_entry”尽可能宽。为什么“message_entry”在小屏幕上那么窄?我该如何解决它? 原来是因为dimens.xml文件夹下有多个res文件造成的。这用于支持多种屏幕尺寸,在较小屏幕的 dimens.xml 中,有 <dimen name="message_list_padding">96dp</dimen>。一旦更改为0dp,布局就如预期的那样。 有关多个 dimens.xml 文件的更多信息,请参阅此答案中的#2。
我有一个512x512px的齿轮png图像(用于设置),我希望它放在一个按钮上。 我试图在可绘制的目录中创建一个目录以保持事物井井有条,但这不起作用,所以我把...
在Android中的列表视图和网格视图之间高效切换,平滑过渡
我正在尝试实现一个视图切换,使用户能够在Android中的“列表视图”和“网格视图”之间切换。然而,我已经做到了这一点,但我对结果并不满意
为什么 Android Studio 在我的项目中使用自定义样式时出现问题?
在布局中引用我的项目自定义样式之一时,我都会收到有关无关输入的语法错误。语法错误 样式仍然正确应用于布局和项目
如何以编程方式在聊天窗口中显示位置消息,就像android中的whatsapp一样?
我正在开发一个聊天应用程序。用户可以像 Whatsapp 一样发送位置信息。 (我不是在谈论共享实时位置功能)。对于这个要求,我使用了谷歌地点选择器......
如何解决android Edittext光标位置问题与对齐跨度
我正在开发简单的android编辑器应用程序。因为我使用了对齐跨度。如果我将对齐方式正常(左)更改为相反(右)或居中,则光标无法正确渲染。 设备:N...
ConstraintLayout 中 app:layout_constrainedWidth 有什么用?
我正在尝试查看在 ConstraintLayout 中使用 app:layout_constrainedWidth="true" 的示例,但我并不理解此属性的使用。在什么场合我应该使用这个
我正在研究RecyclerView以在CardView中显示图像。 我使用 GridLayoutManager 并且在每行中指定了 3 个项目: mLayoutManager = new GridLayoutManager(context,3); 问题:图像...
如何在 Android Kitkat 中调整 AppCompatRadioButton 的 DrawableLeft 大小?
在 Xamarin Android 应用程序中,我有一个 AppCompatRadioButton,其 drawableLeft 属性设置为 @drawable/person_resized: 在 Xamarin Android 应用程序中,我有一个 AppCompatRadioButton,其 drawableLeft 属性设置为 @drawable/person_resized: <RadioGroup android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v7.widget.AppCompatRadioButton android:id="@+id/MyRadioButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Selection 1" android:textSize="24dp" android:drawableLeft="@drawable/person_resized" android:drawablePadding="5dp" /> </RadioGroup> drawable/person_resized.xml 是一个图层列表可绘制对象,我用它来缩小 drawable/person.png 图像: <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/person" android:width="22dp" android:height="22dp" /> </layer-list> 当此视图显示在 Android N 模拟器上时,它的行为正常。 但是在我的 Android Kitkat(4.4.4) 设备中,图像大小不正确。 这是我在 Android N 中得到的: 这是我在 Android Kitkat 中得到的: 这是怎么回事? 我尝试了以下方法来缩小 Android Kitkat 中的 drawableLeft 的大小,但 都不起作用: 使用ScaleDrawable缩小可绘制对象,同时确保SetLevel,这实际上允许调整可绘制对象的大小,但不受控制;无论我提供什么缩放系数,调整大小的图像始终是相同的较小尺寸 从可绘制对象中获取位图,调整其大小并创建一个新的位图可绘制对象,但这会使图像消失 使用插入可绘制对象,与使用图层列表相同,使图像以其原始大小显示 根据Mahmoud Mortda指出的这个答案,Android Kitkat 中的一些功能障碍导致图层列表调整大小被忽略。 所以基本上你必须自己做,以下是我所做的: 我创建了两个文件 layout-v21/radio_group.xml 和 layout/radio_group.xml,前者将用于运行至少 Lollipop (SDK 21) 的 Android 设备,后者将用于包括 KitKat 在内的其余设备。 layout-v21/radio_group.xml 包含通过 RadioGroup 调整大小的图像的 layer-list: <?xml version="1.0" encoding="utf-8"?> <RadioGroup xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v7.widget.AppCompatRadioButton android:id="@+id/MyRadioButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Selection 1" android:textSize="24dp" android:drawableLeft="@drawable/person_resized" android:drawablePadding="5dp" /> </RadioGroup> layout/radio_group.xml 包含一个 RadioGroup,带有由 ImageView 和 TextView 制成的“手工制作”标签: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <RadioGroup android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:id="@+id/RadGroup"> <android.support.v7.widget.AppCompatRadioButton android:id="@+id/MyRadioButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="24dp" /> </RadioGroup> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:layout_toRightOf="@+id/RadGroup" android:layout_centerVertical="true"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <ImageView android:id="@+id/icon" android:layout_width="22dp" android:layout_height="22dp" android:src="@drawable/person" android:layout_alignParentLeft="true" android:layout_centerVertical="true" /> <TextView android:id="@+id/label1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:layout_toRightOf="@+id/icon" android:layout_centerVertical="true" android:textSize="24dp" android:textColor="@color/black" android:text="Selection 1" /> </RelativeLayout> </RelativeLayout> 这里使用 ImageView 让我可以有效地调整图像大小。 最后,在包含 RadioGroup 的 xml 布局中,只需包含 @layout/radio_group,SDK 将加载针对 Android 版本的正确布局: <include layout="@layout/radio_group"/> 添加RadioButton。 <androidx.appcompat.widget.AppCompatRadioButton android:id="@+id/dialog_pedido_item_produto_desconto_radio_button_desconto" android:layout_width="wrap_content" android:layout_height="wrap_content" android:buttonTint="@color/red_600" android:bufferType="spannable" android:gravity="center" android:drawableStart="@drawable/ic_arrow_downward_red_24dp" android:checked="true" android:padding="@dimen/dp_5" android:text="Desconto" />
我在VideoView中使用了教程视频。但视频在播放时不会填充 VideoView,并且 VideoView 中有黑色部分,因为它具有矩形视图。我无法解决它。我试图掩盖
我正在尝试按照 Google 提供的文档将 DatePicker 添加到我的 Android 应用程序中。我正在尝试做到这一点,以便在按下按钮时会出现选择器,从而允许用户...
Android - TextInputEditText 文本拼写颠倒
我的片段中有一个 TextInputEditText,每当我输入文本时,它都会被倒转拼写。所以如果我尝试输入 Leonardo,它将被拼写为 odranoeL。光标位于...
选框不适用于我的 TextView 请检查下面的代码 TextView 的 XML 代码 选框不适用于我的 TextView 请检查下面的代码 XML 代码 TextView <TextView android:id="@+id/mtextcash" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="30dp" android:ellipsize="marquee" android:fadingEdge="horizontal" android:gravity="center" android:marqueeRepeatLimit="marquee_forever" android:maxLength="5" android:scrollHorizontally="true" android:scrollbars="horizontal" android:singleLine="true" android:text="Simple application that shows how to use marquee, with a long text" android:textColor="@color/white" android:textColorHint="@color/white" android:textSize="25dp" /> 在 Activity OnCreate 中 TextView inputAvailableCash = (TextView) findViewById(R.id.mtextcash); inputAvailableCash.setSelected(true); 提前致谢 由于文本很长,并且只有在单行中编写文本时您的代码才能工作。要么添加 android:singleline="true" 在 xml 中或将您的 java 代码更改为。 TextView inputAvailableCash = (TextView) findViewById(R.id.mtextcash); inputAvailableCash.setSelected(true); inputAvailableCash.setSingleLine(true); 这肯定对你有用。 一旦尝试将这些参数放入您的 TextView - 它就有效 android:singleLine="true" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" android:scrollHorizontally="true" android:focusable="true" android:focusableInTouchMode="true" 而且你还需要setSelected(true): my_TextView.setSelected(true); 在 TextView 上运行选取框的最低代码是 <TextView . . android:singleLine="true" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" /> 也不要忘记如下设置选择 textview.setSelected(true); 在xml文件中添加此属性 android:focusable="true" android:focusableInTouchMode="true" 对于选取框效果,宽度应始终为“match_parent”或静态(如 200dp...等)。并以编程方式将其设置为 setSelected true,就像您已经完成的那样,然后只需将其宽度设置为 xml 中的 match_parent 即可。 编辑的xml: <TextView android:id="@+id/mtextcash" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="30dp" android:ellipsize="marquee" android:fadingEdge="horizontal" android:gravity="center" android:marqueeRepeatLimit="marquee_forever" android:maxLength="5" android:scrollHorizontally="true" android:scrollbars="horizontal" android:singleLine="true" android:text="Simple application that shows how to use marquee, with a long text" android:textColor="@color/white" android:textColorHint="@color/white" android:textSize="25dp" /> 如果通过执行 match_parent 它会影响您的设计,那么您必须通过固定其宽度或其他方式来管理它。 根据您使用的 xml 代码 android:maxLength="5" 意味着仅输入 5 个字符,因此您可以将其宽度固定为 50dp 或任何其他静态大小。 嘿,检查此代码,但是当您的文本大小(即长度较长)时,选框工作。它在我这边工作。:) <TextView android:id="@+id/mywidget" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="marquee" android:focusable="true" android:focusableInTouchMode="true" android:singleLine="true" android:textColor="#2086CA" android:text="Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum." android:textAppearance="?android:attr/textAppearanceSmall" /> 希望这有帮助。:) <TextView android:id="@+id/mtextcash" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="30dp" android:ellipsize="marquee" android:gravity="center" android:marqueeRepeatLimit="marquee_forever" android:scrollHorizontally="true" android:singleLine="true" android:text="Simple application that shows how to use marquee, with a long text" android:textColor="@color/white" android:textColorHint="@color/white" android:textSize="25dp" /> 我错误地设置了 android:maxLines="1" 而不是使用 android:singleLine="true"。切换后,一切都按预期运行。
我有一个相对布局,其中很少有图像,如下所示。 我有一个相对布局,其中很少有图像,如下所示。 <RelativeLayout 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" > <ImageView android:id="@+id/image_2" android:layout_width="30dp" android:layout_height="30dp" android:layout_alignLeft="@+id/increase" android:layout_alignParentTop="true" android:layout_marginLeft="34dp" android:layout_marginTop="34dp" android:src="@drawable/ic_launcher" /> <ImageView android:id="@+id/image_1" android:layout_width="30dp" android:layout_height="30dp" android:layout_alignBottom="@+id/image_2" android:layout_marginBottom="14dp" android:layout_toRightOf="@+id/increase" android:src="@drawable/ic_launcher" /> <ImageView android:id="@+id/image_8" android:layout_width="30dp" android:layout_height="30dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:src="@drawable/ic_launcher" /> </RelativeLayout> 在我的java文件中我需要执行一个小任务。 当我单击图像时,它的大小应该增加。 我尝试了这个,它有效,这是我的代码 public class MainActivity extends Activity implements OnClickListener { View imageView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ImageView i1 = (ImageView ) findViewById(R.id.image_1); ImageView i2 = (ImageView ) findViewById(R.id.image_2); ImageView i3 = (ImageView ) findViewById(R.id.image_8); i1.setOnClickListener(this); i2.setOnClickListener(this); i3.setOnClickListener(this); } public void onClick(View arg0) { Log.v("clicked ", "clicked"); imageView = arg0; Toast.makeText(this, "looking to resize the image ", 1).show(); Toast.makeText(this, "clicked 2", 1).show(); height = imageView.getHeight(); width = imageView.getWidth(); height += 50; width += 50; imageView.setLayoutParams(new RelativeLayout.LayoutParams(height, width)); } } 但我面临着一个问题。 当我单击图像时,它的位置正在改变。 考虑这些屏幕截图.. 以下是应用程序启动时的屏幕截图 下面是单击图像视图时的屏幕截图。 任何人都可以建议我,这样图像就不会改变其位置 我可以使用类似网格视图的东西(如果可能的话。但即使我试图在其中添加一些拖动选项。所以有人可以建议我吗) 更新代码: onclick 方法更新如下: public void onClick(View arg0) { Log.v("clicked ", "clicked"); imageView = arg0; Toast.makeText(this, "looking to resize the image ", 1).show(); Toast.makeText(this, "clicked 2", 1).show(); height = imageView.getHeight(); width = imageView.getWidth(); height += 50; width += 50; RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(height, width); params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE); params.setMargins( imageView.getLeft()-30,imageView.getTop()-30,imageView.getRight()+30, imageView.getBottom()+30); imageView.setLayoutParams(params); } 您为相对布局创建新的布局参数,并且仅设置高度和宽度。因此,图像视图将默认位于父相对布局的左上角。您还需要根据需要设置对齐方式和边距。 由于您使用的是相对布局,因此需要创建新的RelativeLayout布局参数: http://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html 类似这样的: RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE); params.setMargins(left, top, right, bottom); 祝你好运...
我将回收器视图滚动到工具栏顶部,但工具栏项目(例如主页按钮)不可单击。 我的布局: 我将回收器视图滚动到工具栏顶部,但工具栏项目(例如主页按钮)不可单击。 我的布局: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/primary"> <include android:id="@id/toolbar_feed" layout="@layout/toolbar_feed"/> // Inside viewPager is recycler view which scroll over the toolbar <android.support.v4.view.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="match_parent" /> <include android:id="@+id/navigation_bottom_layout" layout="@layout/bottom_navigation_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true"/> </RelativeLayout> 我唯一的问题是工具栏主页按钮不可单击,因为它位于 viewPager 层后面。它可以与播放translationZ一起使用,但仅支持API21+。那么,你们有办法让这项工作成功吗? 您可以使用 setOnTouchListener 方法来检测顶部视图上的触摸事件并将其传播到下面的视图。 topButton = findViewById(R.id.topButton); underneathButton = findViewById(R.id.underneathButton); topButton.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // Propagate touch events to the view underneath underneathButton.dispatchTouchEvent(event); return true; } }); underneathButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Handle click on the view underneath // Add your logic here } }); 更改在父视图中添加视图的顺序。 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/primary"> <android.support.v4.view.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="match_parent"/> <include android:id="@id/toolbar_feed" layout="@layout/toolbar_feed"/> <include android:id="@+id/navigation_bottom_layout" layout="@layout/bottom_navigation_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true"/> </RelativeLayout>
更改 CalendarView Android 中的字体系列
有没有办法在Android Studio的标准CalendarView中更改字体系列? 我尝试制作一种样式,但它仅适用于构建后的字体颜色。在预览窗口中,日历以我的字体显示-