android-layout 相关问题

布局定义用户界面的可视结构,例如活动,片段或应用程序窗口小部件的UI。

添加 navGraph 属性时,膨胀类 Fragment 时出错

我知道这个问题有一些问题和答案,但没有一个解决方案能解决我的问题。我得到一个 android.view.InflateException:二进制 XML 文件行 #11:二进制 XML 文件行 ...

回答 4 投票 0

CoordinatorLayout + AppBarLayout + NavigationDrawer

将 CoordinatorLayout 与 AppBarLayout 和 NavigationDrawer 组合时遇到布局问题。 问题是,NavigationDrawer 及其内容隐藏在工具栏后面。 ...

回答 3 投票 0

为什么 Android 自定义对话框会全屏显示

我正在尝试创建自定义对话框。 基本布局(我也尝试过各种修改后的布局): 我正在尝试创建自定义对话框。 基本布局(我也尝试过各种修改后的布局): <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:background="@color/dialogHeaderBackground" android:gravity="center" android:minHeight="@dimen/minHeightDialogTitle" android:text="" android:textStyle="bold" /> <TextView android:id="@+id/message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/title" android:layout_marginTop="5dp" android:text="" /> <LinearLayout android:id="@+id/loutButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_below="@+id/message" android:layout_centerHorizontal="true" android:layout_marginTop="5dp" android:orientation="horizontal" > <Button android:id="@+id/btnNeutral" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="" /> <Button android:id="@+id/btnNegative" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="" /> <Button android:id="@+id/btnPositive" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="" /> </LinearLayout> </RelativeLayout> Java代码: Dialog dialog = new Dialog(this); // Dialog dialog = new Dialog(this,R.style.Theme_Dialog); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(R.layout.custom_dialog); Button btnPositive=(Button) dialog.findViewById(R.id.btnPositive); Button btnNegative=(Button) dialog.findViewById(R.id.btnNegative); Button btnNeutral=(Button) dialog.findViewById(R.id.btnNeutral); TextView txvTitle=(TextView)dialog.findViewById(R.id.title); TextView txvMessage=(TextView)dialog.findViewById(R.id.message); ... so on and so forth 我收到以下对话框,该对话框是全屏的,但我不想要: 已经尝试过的解决方案,其结果与上面的屏幕截图相同: Styles.xml 配置 1 | 实现了 Pastebin 代码 Styles.xml 配置 2 | 实现了 Pastebin 代码 Android 开发指南中提供的使用 AlertDialog.Builder 的示例 | 实现的Java代码 我的底层布局都没有使用 MATCH_PARENT 的高度。正如此堆栈溢出中所述 answer 还尝试将窗口设置更改为WRAP_CONTENT,以根据答案此处 | 进行对话在 Pastebin 中实现 Java 代码 还尝试将整个RelativeLayout保留在父级LinearLayout中,请参阅下面的答案中的第3条评论 我唯一能得到像样的对话框是在指定 XML 布局的高度时,就像这样 android:layout_height="150dp" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="150dp" > 指定固定高度时的对话框: 当消息较大时,内容/布局会丢失 当消息较小时,对话框显示得比需要的大,请参见下面的“确定”按钮 不要建议上述(指定固定高度)作为解决方案,因为它效率不高,看起来不太好,也不是动态的,它是静态的。 要指定什么,看起来不错的自定义对话框,也可以自定义? 从线性布局中删除android:layout_alignParentBottom="true"线 <LinearLayout android:id="@+id/loutButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_below="@+id/message" android:layout_centerHorizontal="true" android:layout_marginTop="5dp" android:orientation="horizontal" > 从上面的代码中删除android:layout_alignParentBottom="true"并检查。 是的,它发生在相对布局中。 在其谷歌docs中明确提到。 请注意,大小之间不能存在循环依赖关系 relativelayout 及其子级的位置。例如,你 不能有高度设置为 WRAP_CONTENT 的relativelayout 和 子项设置为 ALIGN_PARENT_BOTTOM 当您使用对话框时,您必须根据您的要求使用线性布局。 它绝对会为你工作。 进一步的想法可能不适合你,但我只是提一下供参考 您可以使用java代码来制作固定大小的对话框, 或者您可以从布局参数设置布局边距,以便在不同的屏幕尺寸下保持响应能力。 你还可以做一件事, 获取屏幕尺寸 DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int height = metrics.heightPixels; int width = metrics.widthPixels; 你可以计算新的对话框大小并将其设置为@guobao的答案 DisplayMetrics displayMetrics = new DisplayMetrics(); dialog.getWindow().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); WindowManager.LayoutParams params = dialog.getWindow().getAttributes(); params.width = (new width); params.height = (new height); 询问我是否需要任何进一步的规格。 您可以在对话框中设置此代码 DisplayMetrics displayMetrics = new DisplayMetrics(); dialog.getWindow().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); WindowManager.LayoutParams params = dialog.getWindow().getAttributes(); params.width = (the width you want to set); params.height = (the height you want to set); 这是我遇到同样问题时的方法。 我扩展了 DialogFragment(来自 support.v4 lib) 然后充气: @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); LayoutInflater inflater = getActivity().getLayoutInflater(); final View view = inflater.inflate(R.layout.dialog_whatever, null); builder.setView(view); return builder.create(); } 这是布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/rounded_corners" android:padding="20dp"> <TextView android:id="@+id/confirm_dialog_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="16sp" android:textColor="@color/black" android:text="@string/are_you_sure_declining_whatever"/> <LinearLayout android:layout_marginTop="20dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right|bottom" android:orientation="horizontal"> <Button android:id="@+id/cancel_action" android:layout_marginRight="10dp" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@color/transparent" android:text="@string/cancel" android:textColor="@color/accent_color"/> <Button android:id="@+id/confirm_action" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@color/transparent" android:textColor="@color/accent_color" android:text="@string/reject"/> </LinearLayout> </LinearLayout> 这种方法也遵循材料设计指南! 希望对您有帮助 致以诚挚的问候, 佩德罗维奇90

回答 5 投票 0

将项目符号与包装的 TextView 的第一行对齐

我正在尝试在 Android 中创建一个项目符号列表,其中项目符号与 TextView 中第一行的垂直中心对齐,如下所示: 单个项目符号/文本行的 XML 如下: 我正在尝试在 Android 中创建一个项目符号列表,其中项目符号与 TextView 中第一行的垂直中心对齐,如下所示: 单个项目符号/文本行的 XML 是这样的: <android.support.constraint.ConstraintLayout android:id="@+id/setup_intro_bullet_first_container" android:layout_width="0dp" android:layout_height="wrap_content" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent"> <TextView android:id="@+id/setup_intro_bullet_first" style="@style/TextAppearance.AppCompat.Headline" android:layout_width="0dp" android:layout_height="wrap_content" android:text="@string/bullet" android:textColor="@color/colorAccent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/setup_intro_bullet_first_text" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginLeft="4dp" android:paddingTop="14dp" android:text="@string/setup_intro_benefit_notification" android:textColor="@android:color/white" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toRightOf="@id/setup_intro_bullet_first" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </android.support.constraint.ConstraintLayout> 这里我在 TextView 上使用填充来与项目符号对齐,但这不是解决方案,因为对齐方式在其他分辨率中不一致。我还尝试将项目符号字符放入文本字符串本身中,但第二行文本将位于项目符号下方,这不是我想要的。我想要一些关于如何实现这一目标的建议。 我想出的解决方案是创建一个圆圈Drawable并在ImageView中使用它。您可以定义 ImageView 的基线,这使我能够将其与 TextView 的基线正确对齐。这是圆 XML: <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="@color/colorAccent" /> </shape> 以及布局 XML: <ImageView android:id="@+id/setup_intro_bullet_first" style="@style/TextAppearance.AppCompat.Headline" android:layout_width="4dp" android:layout_height="4dp" android:baseline="7dp" android:src="@drawable/circle" app:layout_constraintBaseline_toBaselineOf="@+id/setup_intro_bullet_first_text" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toLeftOf="@+id/setup_intro_bullet_first_text" /> <TextView android:id="@+id/setup_intro_bullet_first_text" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginLeft="4dp" style="@style/TextAppearance.AppCompat.Subhead" android:text="@string/setup_intro_benefit_notification" android:textColor="@android:color/white" app:layout_constraintLeft_toRightOf="@id/setup_intro_bullet_first" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> 使用 app:layout_constraintBaseline_toBaselineOf 属性将“项目符号”视图的基线限制为文本视图的基线。 项目符号视图的限制: app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toLeftOf="@+id/setup_intro_bullet_first_text" app:layout_constraintBaseline_toBaselineOf="@+id/setup_intro_bullet_first_text" 您的文字: app:layout_constraintTop_toTopOf="parent" app:layout_constraintLeft_toRightOf="@id/setup_intro_bullet_first" app:layout_constraintRight_toRightOf="parent" app:layout_constraintBottom_toBottomOf="parent" 对于 Android Pie (28) 及以上版本,您可以直接使用 BulletSpan。对于以下版本,您可以使用 DrawableMarginSpan,但带有损坏的可绘制加项目符号 "\u2022"。 val yourSpan = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { BulletSpan( 8.px, ContextCompat.getColor(requireContext(), R.color.gray), 2.px, ) } else { DrawableMarginSpan(ContextCompat.getDrawable(requireContext(), R.drawable.ic_circle)!!, 20) } val yourString = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { "Just string" } else { "\u2022" + " Just string" } yourTextView.text = SpannableStringBuilder(yourString).apply { setSpan( yourSpan, startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE ) } 损坏的可绘制代码: <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="@color/gray"/> </shape>

回答 3 投票 0

如何在Android中使用日期选择器

我想在Android中使用日期选择器。这是我的 XML 代码。出发日期应从当前日期开始,返回日期应大于我的出发日期 我想在 Android 中使用日期选择器。这是我的 XML 代码。出发日期应从当前日期开始,返回日期应大于我的出发日期 <LinearLayout android:id="@+id/dateLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/fromToLayout" android:baselineAligned="false" android:orientation="horizontal" > <LinearLayout android:id="@+id/departdateLayout" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" android:orientation="vertical" > <TextView android:id="@+id/deparDateTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="7dp" android:gravity="center_horizontal" android:text="@string/departdate" /> <TextView android:id="@+id/departDate" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:text="dd/mm/yyyy" /> </LinearLayout> <LinearLayout android:id="@+id/returndateLayout" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" android:orientation="vertical" > <TextView android:id="@+id/returndata" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="7dp" android:gravity="center_horizontal" android:text="@string/returndate" /> <TextView android:id="@+id/returnDate" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:text="dd/mm/yyyy"/> </LinearLayout> </LinearLayout> 我想使用日期选择器来代替其 id returnDate 和出发日期的 TextView,以便用户单击日历从那里打开,他可以选择日期并将该日期填充到此 Texview 中 尝试以下方法。 TextView departDate = (Button) findViewById(R.id.departDate); departDate.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { Calendar calender = Calendar.getInstance(); Dialog mDialog = new DatePickerDialog(IncomeActivity.this, mDatesetListener, calender.get(Calendar.YEAR), calender.get(Calendar.MONTH), calender .get(Calendar.DAY_OF_MONTH)); mDialog.show(); } }); 然后将以下代码编写为单独的方法。 private DatePickerDialog.OnDateSetListener mDatesetListener = new OnDateSetListener() { public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) { arg2 = arg2 + 1; String my_date = arg1 + "-" + arg2 + "-" + arg3; departDate.setText(my_date); } }; 希望这对您有帮助。 你可以做这样的事情:- public class mExample extends Activity { private TextView returnDate; private int year; private int month; private int day; static final int DATE_PICKER_ID = 1111; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); returnDate= (TextView) findViewById(R.id.returnDate); // Get current date by calender final Calendar c = Calendar.getInstance(); year = c.get(Calendar.YEAR); month = c.get(Calendar.MONTH); day = c.get(Calendar.DAY_OF_MONTH); // Show current date returnDate.setText(new StringBuilder() // Month is 0 based, just add 1 .append(month + 1).append("-").append(day).append("-") .append(year).append(" ")); returnDate.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // On click show datepicker dialog showDialog(DATE_PICKER_ID); } }); } @Override protected Dialog onCreateDialog(int id) { switch (id) { case DATE_PICKER_ID: // open datepicker dialog. // set date picker for current date // add pickerListener listner to date picker return new DatePickerDialog(this, pickerListener, year, month,day); } return null; } private DatePickerDialog.OnDateSetListener pickerListener = new DatePickerDialog.OnDateSetListener() { // when dialog box is closed, below method will be called. @Override public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) { year = selectedYear; month = selectedMonth; day = selectedDay; // Show selected date returnDate.setText(new StringBuilder().append(month + 1) .append("-").append(day).append("-").append(year) .append(" ")); } }; } 我制作了这个非常简单的存储库来说明日期时间选择器遵循材料组件指南 https://github.com/mbbiosio/MaterialDatePicker-Google 希望它能帮助你理解这一点 尝试使用此代码解决您的所有问题 public class SearchFlight extends Activity { EditText depart,returnDate; Calendar myCalendar; int val; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_search_flight); depart=(EditText)findViewById(R.id.departDate); returnDate=(EditText)findViewById(R.id.returnDate); myCalendar = Calendar.getInstance(); final DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { // TODO Auto-generated method stub myCalendar.set(Calendar.YEAR, year); myCalendar.set(Calendar.MONTH, monthOfYear); myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth); updateLabel(val); } }; depart.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub new DatePickerDialog(SearchFlight.this, date, myCalendar .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH), myCalendar.get(Calendar.DAY_OF_MONTH)).show(); val=1; } }); returnDate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub new DatePickerDialog(SearchFlight.this, date, myCalendar .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH), myCalendar.get(Calendar.DAY_OF_MONTH)).show(); val=2; } }); } private void updateLabel(int val) { String myFormat = "dd/MM/yy"; //In which you need put here SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US); if(val==1) depart.setText(sdf.format(myCalendar.getTime())); else returnDate.setText(sdf.format(myCalendar.getTime())); } }

回答 4 投票 0

无法在WebView中打开PDF文档

我正在使用WebView打开一个url,它实际上是一个pdf文档。这是代码片段。 WebView webView = (WebView) context.findViewById(R.id.webView1); webView.getSettings().setJavaScriptEnab...

回答 3 投票 0

编辑文本底部没有线条

我想让我的编辑文本字段没有底部的线条,就像这张图片一样 现在我的编辑文本看起来像这样 我该怎么办?

回答 4 投票 0

Android Studio 说“androidx.drawerlayout.widget.DrawerLayout”在项目或库中找不到,即使我已经将其添加到 gradle 中

在此输入图像描述 下面还显示了所附同一代码片段中的代码文本。 下面还有来自已附加的同一片段的代码文本。 <androidx.drawerlayout.widget.DrawerLayout 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:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:openDrawer="start"> 尝试执行以下任一方法: 通过转到“文件”->“关闭项目”来关闭您的 Android 项目。然后再次导入 如果上述选项不适合您,则转到文件 -> 使缓存无效/重新启动 如果它们都不起作用,请删除依赖项并再次添加它,并在 gradle 同步完成时告诉我构建输出 您的工作室缓存可能已损坏; 所以 先关闭你的所有项目;然后 在C:\驱动器中打开工作室路径;例如。它应该像 C:\Users\hp(Your_User_Name)\.AndroidStudio4.0\system\caches...删除这个 caches 文件夹。 现在再次启动您的项目,问题现在就消失了。 希望这对某人有帮助。 我不知道它是否适合你,但它对我有用: 我刚刚启动了该应用程序(该应用程序应该在模拟器中启动)。一旦成功执行,IDE 就不再显示此问题。 不要注释掉 DrawerLayout。如果需要,请将其主体保持为空,然后启动应用程序。

回答 3 投票 0

Kotlin 自定义视图引用 textview 返回 null

我有一个自定义视图: 类 CustomerView(context: Context, attrs: AttributeSet) : LinearLayout(context, attrs) { private var txtName: TextView 私有变量 txtAge: TextView 在里面 { ...

回答 1 投票 0

在android中实现自定义多个复选框

我想实现这个目标,有人可以帮助我吗?

回答 1 投票 0

如何为轮播项添加点击监听器

我按照本指南使用 MotionLayout 创建了一个轮播:https://developer.android.com/training/constraint-layout/motionlayout/carousel 我已经从本指南中获得了所有内容 - 我...

回答 1 投票 0

在android xml中将两个元素放置在父相对布局的左侧和右侧

我想要在android xml中相对布局左侧的两个元素和同一相对布局右侧的两个元素。我尝试如下。它不起作用。 我的 XML 我想要在 android xml 中相对布局左侧的两个元素和同一相对布局右侧的两个元素。我尝试如下。这不起作用。 我的 XML <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" android:background="@color/primary_color" android:id="@+id/linear_parentPl" tools:context=".PlayList"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintTop_toTopOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" android:orientation="vertical" android:background="@drawable/top_bar"> <ImageView android:id="@+id/back_iconPl" android:layout_width="44dp" android:layout_height="44dp" android:src="@drawable/baseline_arrow_back_ios_24" android:layout_marginLeft="16dp" android:layout_marginTop="5dp" android:layout_marginBottom="5dp"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/play_list" android:layout_toRightOf="@+id/back_iconPl" android:textColor="@color/light_orange" android:textStyle="bold" android:textSize="24sp" android:layout_marginTop="10dp"/> <TextView android:id="@+id/logout_text" android:layout_toLeftOf="@+id/logout_iconPl" android:layout_alignParentRight="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/logout_text" android:textColor="@color/white" android:textStyle="bold" android:textSize="14sp" android:layout_marginTop="10dp"/> <ImageView android:id="@+id/logout_iconPl" android:layout_alignParentRight="true" android:layout_width="26dp" android:layout_height="26dp" android:src="@drawable/logoutrounded"/> </RelativeLayout> 任何机构可以帮助我实现这一目标吗? 我的输出是 我建议你放弃相对布局并直接使用约束布局。 给出一些约束应该可以将对象放置在右端。 app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/xxx" app:layout_constraintTop_toBottomOf="parent" 其中“@id/xxx”是左侧对象的id。 如果您有多个左侧对象,请将它们包装到另一个约束布局中,并为该约束布局提供一个 id 来引用它。 此外,还可能需要 0dp 的宽度或高度,例如: android:layout_width="0dp" android:layout_height="match_parent" 这将填充宽度或高度的空白空间(两者均不可用)。 详细信息请参见 layout_height="0dp" 是什么意思?

回答 1 投票 0

状态栏与应用程序的工具栏重叠,并且工具栏在 Android API 30+ 上消失了

我在 Android API 30+ 上遇到应用程序工具栏问题。设备的状态栏与我的应用程序的工具栏重叠,并且工具栏消失了。 API 低于 30(29、28、27、...)的设备上不会出现此问题。我

回答 1 投票 0

从服务访问视图

所以基本上,我得到了一个显示乐队列表的列表视图。 当我按下列表中的一个频段时,它会通过适配器创建一个频段配置文件页面。 在这个布局中,我有一个播放按钮,它...

回答 1 投票 0

如何显示大小相等的卡片视图?

我试图显示两张大小相同的卡片,其中一个卡片视图将显示图像,另一个将显示Texview。目前,两个卡片视图的大小不同,如图所示 哈...

回答 1 投票 0

Android Spinner 自定义布局

我正在尝试使用自定义样式自定义我的微调器。 旋转器 我正在尝试使用自定义样式自定义我的微调器。 旋转器 <Spinner android:id="@+id/my_spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/activity_vertical_margin" android:layout_marginLeft="@dimen/activity_horizontal_margin" android:layout_marginRight="@dimen/activity_horizontal_margin" android:layout_marginTop="@dimen/activity_vertical_margin" app:layout_constraintTop_toBottomOf="@id/expense_amount" app:layout_constraintLeft_toRightOf="parent" app:layout_constraintRight_toLeftOf="parent" android:elevation="3dp" /> 这是我的 styles.xml 文件。 styles.xml <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="android:spinnerStyle">@style/AppTheme.spinnerStyle</item> <item name="android:spinnerDropDownItemStyle">@style/AppTheme.spinnerDropDownItemStyle</item> </style> <style name="AppTheme.spinnerStyle" parent="@android:style/Widget.Material.Light.Spinner"> <item name="android:textColor">@android:color/white</item> <item name="android:background">@color/colorPrimary</item> </style> <style name="AppTheme.spinnerDropDownItemStyle" parent="@android:style/Widget.Material.DropDownItem.Spinner"> <item name="android:textColor">@android:color/white</item> <item name="android:background">@color/colorPrimary</item> </style> 这给了我这样的旋转器: 我想添加一个下拉箭头。 当我将微调器更改为下拉箭头代码时,所有文本颜色和背景颜色都会丢失。 显示下拉箭头的微调器代码 <Spinner android:id="@+id/my_spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/activity_vertical_margin" android:layout_marginLeft="@dimen/activity_horizontal_margin" android:layout_marginRight="@dimen/activity_horizontal_margin" android:layout_marginTop="@dimen/activity_vertical_margin" app:layout_constraintTop_toBottomOf="@id/expense_amount" app:layout_constraintLeft_toRightOf="parent" app:layout_constraintRight_toLeftOf="parent" android:background="@android:drawable/btn_dropdown" /> 如何保留我的主题以及下拉箭头?? P.S. 我不太擅长在 Linux 机器上捕获屏幕截图。 这是 Android 的正常行为: Spinner 有自己的默认背景,当您使用 styles.xml 自定义它时,它会跟随并变成蓝色。然后在代码中再次将 Spinner 的 android:background 设置为 @android:drawable/btn_dropdown,因此它会覆盖您的样式,因为布局 xml 中的属性比样式中的属性具有更高的优先级。 您没有背景来显示下拉箭头,请使用这个: 第一个解决方案: <Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:theme="@style/ThemeOverlay.AppCompat.Light" android:spinnerMode="dropdown" /> 在你的java文件中 spinner = (Spinner) view.findViewById(R.id.spinner); ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.spinner_data, android.R.layout.simple_spinner_dropdown_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); 第二种解决方案 您将需要在 Spinner 外部使用relativelayout。将您的 <Spinner> 替换为: <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/spinner_bg"> <Spinner android:id="@+id/spinner" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/ThemeOverlay.AppCompat.Light" android:spinnerMode="dropdown" /> </RelativeLayout> 然后创建自定义背景并为微调器选择背景颜色: spinner_bg.xml <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:top="8dp" android:bottom="8dp"> <shape> <solid android:color="@color/colorPrimary" /> <corners android:radius="2dp"/> <stroke android:width="1dp" android:color="@color/colorPrimary" /> <padding android:top="16dp" android:bottom="16dp" android:left="8dp" android:right="16dp"/> </shape> </item> </layer-list>

回答 1 投票 0

Jetpack Compose Lazy Table

我当前的目标是实现一个可以表示表格的视图,但是这个表格的列和行中可以包含相当多的元素。我当前的想法是用 LazyRows 填充 LazyColumn。 @

回答 2 投票 0

包裹在 CoordinatorLayout 内的 RecyclerView 在键盘打开时未调整大小

活动布局xml: 活动布局xml: <?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <android.support.design.widget.AppBarLayout android:id="@+id/app_bar_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:contentScrim="?attr/colorPrimary" app:expandedTitleMarginEnd="64dp" app:expandedTitleMarginStart="48dp" app:layout_scrollFlags="scroll"> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true" app:layout_collapseMode="parallax"> <ImageView android:layout_width="match_parent" android:layout_height="250dp" android:scaleType="centerCrop" android:src="@drawable/hospital_logo" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" android:orientation="vertical" android:padding="10dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="******* ************* ********** ************" android:textSize="18sp" android:textColor="@android:color/black" android:textStyle="bold"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="***************************" android:textSize="18sp" android:textColor="@android:color/black" android:textStyle="bold"/> </LinearLayout> </FrameLayout> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> </android.support.design.widget.CollapsingToolbarLayout> <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabMode="fixed" /> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </android.support.design.widget.CoordinatorLayout> 这里我将 CoordinatorLayout 与 CollapsingToolbarBar 和 ViewPager 一起使用。 我在 ViewPager 中添加了两个带有布局 xml 的片段: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="vertical" /> </LinearLayout> recycler_view 的单元格包含 EditText。当我选择 EditText 时,软键盘打开,但 EditText 隐藏在键盘后面。 我已在活动中添加了以下标志: android:windowSoftInputMode="adjustResize" 我正在使用 23.1.1 appcompat 版本的 RecyclerView。 当我用 CoordinatorLayout 替换 LinearLayout 时,RecyclerView 正在调整大小以正确显示最后一个元素。所以我认为这是协调器布局的问题。 我遇到了以下问题https://code.google.com/p/android/issues/detail?id=176406和https://code.google.com/p/android/issues/detail?id =176187 但这与这个错误无关。让我知道我是否可以应用某种路径来解决这个问题。 等待回复。谢谢。 如果需要更多详细信息,请告诉我。 有一个非常相似的问题,并且能够通过使用 android:windowSoftInputMode="adjustPan" 来修复它 我遇到了类似的问题coordinatorLayout。但是,将 fitsSystemWindows 设置为 false 解决了问题。看来罪魁祸首是coordinatorLayout。我通过将整个布局(包括 AppBarLayout)封装在 constraintLayout 中解决了这个问题。 <androidx.coordinatorlayout.widget.CoordinatorLayout> <androidx.constraintlayout.widget.ConstraintLayout <com.google.android.material.appbar.AppBarLayout </com.google.android.material.appbar.AppBarLayout //content here </androidx.constraintlayout.widget.ConstraintLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout> 我知道回复这个帖子来得很晚,但也许对其他人有帮助。 :)

回答 2 投票 0

如何制作全屏 Activity,状态栏位于其顶部,而当 Activity 聚焦于 editText 时,滚动条未完全滚动?

问题是,当我在 EditText 中输入文本时,ScrollView 不起作用并且不会在我的活动中滚动 有趣的状态栏颜色(活动:活动){ val 窗口 = Activity.window //...

回答 4 投票 0

如何在 android kotlin 上关闭 include 标签中的 xml 文件

我想在点击kotlin中包含的xml文件的关闭按钮时关闭在include标签中打开的xml文件。我尝试如下。我无法关闭。有人可以帮我做这件事吗...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.