Articles of android constraintlayout

窗口软输入模式ConstraintLayout

早期软输入模式没有问题,但在包含ConstraintLayout ,当键盘出现时,片段内容不会向上移动。 表现 分段 public class AuthFragment extends Fragment implements ValidationListener { private static final String TAG = AuthFragment.class.toString(); // UI references. @NotEmpty @Email @BindView(R.id.email) EditText email; @NotEmpty @BindView(R.id.password) EditText password; @BindView(R.id.auth_sign_in) Button signIn; @BindView(R.id.remember_me) CheckBox remember; @BindView(R.id.forgot) TextView forgot; @BindView(R.id.error) TextView errorField; @Inject @ApplicationContext Context context; private Validator validator; private onAuthenticateEventListener authenticatableEventListener; private String […]

在水平进度条中删除填充

在我们的应用程序中,我们需要一个不确定的进度条,如下所示: 我们可以通过在ProgressBar上设置负余量来实现这一点,如下所示: 但是因为ConstraintLayout不支持负边距,所以它看起来像这样: 好吧,负利润是一个黑客。 让我们换一个不同的黑客,好吗? 让我们介绍我们的自定义视图CustomProgressBar ,它扩展了ProgressBar并覆盖了它的onDraw方法,如下所示: @Override protected void onDraw(Canvas canvas) { int marginTop = dpToPx(7); canvas.translate(0, -marginTop); super.onDraw(canvas); } 但所有这些都闻起来像坏代码。 必须有一个更好的解决方案! 你会推荐什么?

如何使用ConstraintLayout查看“wrap_content但不大于”?

我连续3个视图:标题,版本和imageview(作为按钮工作): title应该是wrap_content但是遵守以下规则 version应该是wrap_content ,标题的右边和imageview的左边 imageview具有固定大小,位于父级的右上角 问题是如果标题太大,版本移动到右边并且不遵守规则“版本在imageview左侧”: 所以我需要限制标题宽度并使版本可见而不是向右移动。 这是XML: PS 1. layout_width=”0dp” + app:layout_constraintWidth_default=”wrap”似乎正是我所需要的(“wrap_content但不破坏约束”)但它不起作用(仍然大于要求): <TextView android:id="@+id/LibraryWithVersionItem.title" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginLeft="8dp" android:layout_marginTop="8dp" android:ellipsize="middle" android:textColor="@color/mySecondaryDarkColor" android:textSize="@dimen/fontSize18" android:textStyle="bold" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintWidth_default="wrap" tools:text="ExampleLibrary 01234567890123456789012345" PS 2.为版本设置最小约束宽度( app:layout_constraintWidth_min=”60dp” )也没有用 – 它是不可见的,因为它移动得太右了。

在ConstraintLayout中以编程方式删除/添加约束

我想根据某些条件以编程方式删除和添加约束。 以下是截图: 我想删除它,但在代码中: 所以想要以编程方式实现同​​样的效果 这是我试过的代码: if (advertisements.size() > 0) { //my own condition ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams) btnCreateAd.getLayoutParams(); layoutParams.topToBottom = R.id.imvEmpty; //the imageview that is in center of the view btnCreateAd.setLayoutParams(layoutParams); recyclerView.setVisibility(View.VISIBLE); txvMyAdEmptyText.setVisibility(View.GONE); imvEmpty.setVisibility(View.GONE); adapter.setList(advertisements); adapter.notifyDataSetChanged(); } else { ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams) btnCreateAd.getLayoutParams(); layoutParams.topToBottom = -1; //here i am trying to remove top constraint […]

在Constraint布局中将RecyclerView的高度设置为“wrap_content”

我正在尝试在wrap_content上设置回收器视图的高度并使其尊重,但它将超过布局上的其他窗口小部件。 我现在能做什么?

在Constraint布局中编辑文本滚动条问题

我只是在编辑文本的高度达到布局高度的末尾时,我试图在编辑文本中显示滚动条。 如果我输入/添加空格,但是当我的文本到达编辑文本宽度的末尾时,它会导致问题。 一旦我的文本到达我的编辑文本宽度的末尾,它就开始向我显示滚动条,而当我到达屏幕的(高度)结束时它应该显示出来。 请告知我如何解决此问题。 请查看附图和代码以供参考。

使用ConstraintLayout中的组来侦听多个视图上的单击事件

基本上我想将一个OnClickListener附加到ConstraintLayout内的多个视图。 在迁移到ConstraintLayout之前,我可以在其中添加侦听器的一个布局中的视图。 现在,它们与ConstraintLayout下的其他视图位于同一层。 我尝试将视图添加到android.support.constraint.Group并以编程方式向其添加了一个OnClickListener。 group.setOnClickListener { Log.d(“OnClick”, “groupClickListener triggered”) } 但是,从ConstraintLayout版本1.1.0-beta2这似乎不起作用 我做错了什么,有没有办法实现这种行为,还是我需要将监听器附加到每个单一视图?

约束布局内的Scrollview不会滚动到父约束的底部

我的表格大约有12/13个字段。 我在约束布局中使用了Scrollview 。 下面是XML布局的层次结构。 问题是,它不会滚动到底部而只会滚动到第一个初始的10个视图。 最后3个字段被隐藏,因为视图不会进一步滚动。 父母布局

如何在PercentRelativeLayout中使用layout_aspectRatio?

我尝试使用PercentRelativeLayout在视图上实现16:9的宽高比。 所以我把这行放在build.gradle文件中:compile’c​​om.android.support:design:23.0.1 compile ‘com.android.support:design:23.0.1’ 我用这个布局: 问题: Android Studio警告我: ‘layout_height’ should be defined为ImageView ‘layout_height’ should be defined 。 当我运行我的项目时,我得到: Error:(15) No resource identifier found for attribute ‘layout_aspectRatio’ 。 那有什么不对?

ConstraintLayout onMeasure非常慢

所以我尝试将我的一些回收者ViewHolders重构为ConstraintLayouts 。 在我做完之后,在看到之后我感到震惊。 充气单个视图所需的时间比通常的LinearLayout多20倍。 它实际上在执行时会跳过这么多帧。 编辑:约束布局的版本不相关。 尝试不同的组合有几乎相同的结果。 任何人都能解释为什么会这样吗? 也许它不是为这种“沉重”的观点而设计的? 以下是ViewHolder使用的根XML : 这是order_list_item_constraint.xml 这是问题的certificate。 所有儿童视图的测量时间约为0.1ms 比较一个简单的LinearLayout EDIT2:这是一个使用LinearLayout的布局版本: https : //pastebin.com/ZvffUHnw