我有一个textview组件,我通过layout_weight将其宽度设置为其父级的50%。我还需要为它设置填充值。我似乎可以将其设置为xdp,但我怎样才能使用权重配置?比方说,左边填充是屏幕的2%?
<TextView
android:id="@+id/buttonCollect"
android:layout_width="0dp"
android:layout_height="match_parent"
android:text="@string/hello"
android:paddingLeft="8dp" //<---- how to se this.
android:layout_weight="0.5" />
答案 0 :(得分:1)
您无法在XML布局文件中将百分比设置为填充值。
但是,您可以通过在px中计算正确的长度来在Java代码中设置它。
答案 1 :(得分:0)
您可以使用dimens.xml
并将它们放在不同的values-xxx
文件夹中。如果您想要8dp
设备中的hdpi
和10dp
中的hdpi-1024x600
,您可以按照以下步骤操作:
在dimens.xml
文件夹中创建values-hdpi
。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="paddingLeft">8dp</dimen>
</resources
在dimens.xml
文件夹中创建values-hdpi-1024x600
。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="paddingLeft">10dp</dimen>
</resources
将android:paddingLeft="8dp"
替换为
android:paddingLeft="@dimen/paddingLeft"
希望它有所帮助。
答案 2 :(得分:0)
您可以使用水平 LinearLayout ,其中视图和 TextView 作为其子项,并相应地指定权重。然后,无需将填充设置为 TextView 。
此处, TextView 占据屏幕的2/3。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:orientation="horizontal" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="2" />
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Lagre text"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>