Tag: android layout

LinearLayout为什么不按比例分配收缩?

我的理解是,LinearLayout应该根据子元素的布局权重分配松弛(额外空间)和/或缩小(负额外空间)。 这似乎工作,因为我期望松懈,但不是收缩。 以下的android Activity演示。 它显示了9列(垂直LinearLayouts),拥挤程度不同。 9列中的每一列都有两个孩子: 第一个孩子是由3个单选按钮组成的子列,分别标有“A”,“B”,“C” 第二个孩子是由2个单选按钮组成的子列,分别标记为“0”,“1” 每个子列的权重与其中单选按钮的数量(3或2)成正比,子列中每个单选按钮的权重为1。 我选择了这些权重,以便在其子孙(单选按钮)中平均分配列的额外空间(负值或正值),以便给定列中的所有5个单选按钮的大小相同。 如下图所示(开发人员选项“显示布局边界”启用),它似乎按照预期的方式工作(右侧的红色列),但不适用于缩小(蓝色列,左侧)。 在最拥挤的(最左边的)列中,这个差异是最明显的,前三个单选按钮比两个表兄弟小得多。 这是LinearLayout的预期行为? 或者它是LinearLayout中的一个错误? 或者在我的程序中的错误? 这里的程序列表(在Kotlin ): // app/src/main/java/com/example/donhatch/linearlayoutweightsquestionactivity/MainActivity.kt // Simple activity to test LinearLayout’s slack/shrinkage distribution behavior. package com.example.donhatch.linearlayoutweightsquestionactivity import android.graphics.Color import android.os.Bundle import android.support.v7.app.AppCompatActivity import android.widget.LinearLayout import android.widget.RadioButton import android.widget.RadioGroup class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val c […]

在编辑文字上输入时在数字之间插入“ – ”

我试图格式化编辑文本的值,因为用户键入。 我想要的是用户应该能够输入,并看到输入的变化。 我的要求是,在3位数types之后,应该添加一个连字符,第一个连字符后面会输入另外4位数字,然后再附加一个连字符,然后是7位数字,然后是1之后。所以基本上格式化应该看起来像这样:123-1234-1234567-1。 现在,问题是我可以用标准的文本观察器来实现这个function,但是在使用退格键或者在软输入键盘上删除的时候,这个function是不正常的。 我的代码如下: mEditText = (TextInputEditText) findViewById(R.id.myEditText); mEditText.addTextChangedListener(mTextWatcher); 我的文本观察者: private TextWatcher mTextWatcher= new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { String str = charSequence.toString(); mEditText.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View view, int […]

如何在Android中启用或禁用checkbox

我有我的quickalert对话框4checkbox…我想要的是,当我检查[启用] 1checkbox其他3checkbox必须得到禁用..我做他们点击,但没有禁用。 我不知道该怎么做。 这是我正在寻找的: checkmrn = (CheckBox) container.findViewById(R.id.MrnCheckBox); checkmrn.setText(“By Mrn”); checkmrn.setEnabled(false); checkdate = (CheckBox) container.findViewById(R.id.dateCheckBox); checkdate.setText(“By Date”); checkname = (CheckBox) container.findViewById(R.id.nameCheckBox); checkname.setText(“By Name”); checklocation = (CheckBox) container.findViewById(R.id.locationCheckBox); checklocation.setText(“By Location”); okButton = (Button) container.findViewById(R.id.okButton); okButton.setText(“Ok”); checkmrn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (((CheckBox) v).isChecked()) { Toast.makeText(mContext, “By Mrn”, Toast.LENGTH_SHORT).show(); } } }); checkdate.setOnClickListener(new […]

以编程方式设置android形状颜色

我正在编辑,使问题更简单,希望有助于准确的答案。 说我有以下oval形状: 如何从活动类中以编程方式设置颜色?

Android无法解析符号’?attr / selectableItemBackground’

我得到了这个错误信息 无法解析符号’?attr / selectableItemBackground’validationAndroid XML文件中的资源引用。 而且,我也遇到了类似的错误 无法解析符号’@ style / TextAppearance.AppCompat.Headline’ validationAndroid XML文件中的资源引用。 任何指针将是伟大的! 谢谢! 这似乎与这个线程有关,但没有提供解决方案:

在Android TextView中设置文本样式

在我的应用程序中,每个目标文本都有数字和字符串的混合。 我希望数字以粗体和字符串突出显示为斜体。 例如 你已达到 你目标的 25% 。 达到目标 30 天以上 是否有一个更简单的方法来做到这一点,比创建5个单独的textview – 3字符串和2号码。 为每个目标管理5个文本框的布局在我的布局中变成了一场噩梦。 我有9个这样的行,导致在一个布局中潜在的45个文字浏览。

Inflator(root = null)布局破坏和Inflator(parentView = obj)无法设置位置

为了学习Kotlin和Android,我开始一个项目。 这是一个小发射器,但现在我有一个问题。 我的问题: A)当我用root:ViewGroup null调用Inflater.inflate时,我可以通过调用viewGroup.addView(v,postion)在根上的每个位置添加我的视图。 但我的布局被破坏,我的孩子的大小有错误的宽度。 val inflater = activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater val child = inflater.inflate(resource, null, true) viewGroup.addView(child, position) B)当我用root:ViewGroup父母调用Inflater.inflate时,我有我想要的布局,但我不能在视图(List)中决定我的孩子的位置。 val inflater = activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater val child = inflater.inflate(resource, viewGroup, true) 题: 在A)有可能从父视图设置布局设置我的孩子 在B)可以在父视图中从我的孩子设置位置 布局 父母是一个GridLayout,它显示最大宽度上的图标取决于确定的列。 孩子布局 如果你知道这个项目更好的设计/解决方案。 我很高兴学习新东西并实施。 谢谢你的时间

导航抽屉:从左边缓慢滑动时,停止拖动菜单

如果我从左边快速滑动,这不会发生。 但是,如果我从左边缓慢滑动,经常(但不是总是)拖动停止,并且抽屉菜单不响应进一步的滑动。 我曾尝试使用其他Google应用,例如Google图书,Google地图或Play商店,但他们没有这个问题。 起初,我以为我做错了什么。 但是我创建了一个新的项目,并选择了主要的活动types作为“导航抽屉活动”,并重现了这个问题。 除了更改SDK /工具/库版本之外,我没有修改生成的项目。 我怎么解决这个问题? 我没有附加源代码,因为它是在Android Studio中复制的模板项目。 以下是我的版本/配置。 Android Studio 3.0.1 科特林 编译SDK 27 目标SDK 27 构建工具27.0.3 支持版本“27. +”

Android Leanback库Horizo​​ntalGridView的scrollToPosition不起作用

我正在实施Android TV应用程序,并使用Leanback library HorizontalGridView 。 我有一个自定义布局。 在创建活动之后,我必须将HorizontalGridView滚动到特定位置,但不幸的是, scrollToPositio(position)方法根本无法在此布局上工作。 它什么都不做。 我发现,当我专门设置layout manager LinearLayoutManager它的作品。 但问题是,当我不使用leanback默认的HorizontalGridView LayoutManager ,使用D-pad聚焦下一个项目时出现问题。 基本上,如果我使用普通的RecyclerView ,带有D-pad的控件不能按预期工作,所以我决定采用leanback实现,这个问题已经解决了,但是到目前为止我还是无法使用scrollToPosition方法。 有任何想法吗? 我的代码片段: 布局: 代码[Kotlin]: binding.photoGalleryRecycler.scrollToPosition(position) binding.photoGalleryRecycler.getChildAt(position)?.requestFocus() 我也尝试了一些这样的黑客: // save default leanback layout manager var defaultLayoutManager = binding.photoGalleryRecycler.layoutManager // set LinearLayoutManager binding.photoGalleryRecycler.layoutManager = LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false) // scroll to position and request focus binding.photoGalleryRecycler.scrollToPosition(position) binding.photoGalleryRecycler.getChildAt(position)?.requestFocus() // set default layout […]

无法在Kotlin中“findViewById”。 获取错误“types推断失败”

当我尝试按ID查找RecycleView时,出现以下错误。 错误: –types推断失败:没有足够的信息来推断参数T 码: class FirstRecycleViewExample : AppCompatActivity() { val data = arrayListOf() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.first_recycleview) val recycler_view = findViewById(R.id.recycler_view) as RecyclerView ///IN THIS LINE I AM GETTING THE ERROR data.add(“First Data”) data.add(“Second Data”) data.add(“Third Data”) data.add(“Forth Data”) data.add(“Fifth Data”) //creating our adapter val adapter = CustomRecycleAdapter(data) //now adding the adapter […]