bar*_*der 29 android android-layout
android支持%或有没有办法近似.我有两个非常不同的屏幕尺寸,但我百分比方面我希望活动中的EditBox具有相同的屏幕尺寸和屏幕尺寸比例的余量.如何才能做到这一点.
Foa*_*Guy 32
它实际上并不支持按百分比设置值(除了一些xml动画文件似乎)如果您使用百分比设置,我能想到的最佳方式是来自java调用getWidth和getHeight然后将它们乘以你的decimal并使用setMargin()或setPadding()设置结果.
Mar*_*k D 32
通过将EditText包装在LinearLayout中,可以在XML中实现这一点:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="10"
android:gravity="center"
>
<EditText
android:layout_height="wrap_content"
android:layout_width="0dip"
android:layout_weight="8"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
nei*_*its 23
编辑:此答案的布局现已弃用.使用Eugene Brusov提出的解决方案.另外,谢谢chancyWu的评论.
现在支持库版本23.0.0出现了更好的方法(关于时间,对吧?).您现在可以使用PercentFrameLayout或PercentRelativeLayout.
如果你希望EditText占屏幕宽度的80%,两边都有10%的边距,代码看起来像这样:
<android.support.percent.PercentRelativeLayout
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">
<EditText
android:layout_height="wrap_content"
app:layout_widthPercent="80%"
app:layout_marginStartPercent="10%"
app:layout_marginEndPercent="10%"/>
</android.support.percent.PercentRelativeLayout>
Run Code Online (Sandbox Code Playgroud)
您还可以查看PercentLayoutHelper.PercentLayoutParams
ConstraintLayout中引入了Guideline.
例如,您可以将EditText置于屏幕高度的25%左右,并将屏幕宽度的20%左右放置:
这是布局源:
<androidx.constraintlayout.widget.ConstraintLayout
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">
<EditText
android:id="@+id/editText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:text="Name"
app:layout_constraintLeft_toLeftOf="@+id/left_guideline"
app:layout_constraintRight_toLeftOf="@+id/right_guideline"
app:layout_constraintTop_toTopOf="@+id/top_guideline" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/top_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.25" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/left_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.2" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/right_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.8" />
</androidx.constraintlayout.widget.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38056 次 |
| 最近记录: |