Android开发:如何将Fragment居中?当前Fragment为右对齐状态
如何让Fragment在ConstraintLayout中居中对齐?
首先得指出你当前布局里的小问题:你给Fragment设置了layout_weight="1",但这个属性是LinearLayout专属的,在ConstraintLayout里完全不起作用,而且你的Fragment没有添加任何约束条件,这才导致它的显示位置不符合预期(比如看起来右对齐)。
下面给你两种可行的解决方法,都能让Fragment居中:
方法一:让Fragment自适应宽度并居中
如果希望Fragment的宽度根据内容自动调整,同时保持水平和垂直居中,修改Fragment的XML属性如下:
<fragment android:id="@+id/headlines_fragment" android:name="com.example.tedpo.bitcoinproject2.BlankFragment" android:layout_width="wrap_content" android:layout_height="match_parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" />
app:layout_constraintStart_toStartOf="parent"和app:layout_constraintEnd_toEndOf="parent"这两个约束会把Fragment的左右边界和父布局绑定,自动实现水平居中。- 如果想让Fragment宽度占满父布局但保留边距,可以把
android:layout_width改成0dp(也就是match_constraint),再加上android:layout_marginStart="16dp"和android:layout_marginEnd="16dp"这类边距属性。
方法二:固定Fragment宽度并居中
如果你需要Fragment有固定的宽度(比如300dp),同时居中显示,代码可以这样写:
<fragment android:id="@+id/headlines_fragment" android:name="com.example.tedpo.bitcoinproject2.BlankFragment" android:layout_width="300dp" android:layout_height="match_parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" />
这里layout_constraintHorizontal_bias默认就是0.5(居中),所以不需要额外设置,只要绑定了左右约束,Fragment就会自动在水平方向居中。
替换掉你原来的Fragment代码,就能解决当前的对齐问题啦。
内容的提问来源于stack exchange,提问作者Ted pottel
相关产品推荐
相关产品推荐

