2015-01-14 5 views
0

У меня есть компонент textview, который я установил его ширину как 50% своего родителя через layout_weight. Мне также нужно установить для него значение дополнения. Кажется, я могу установить его как xdp, но как я могу использовать конфигурацию веса? скажем, оставшееся отступы как 2% экрана?android: paddingLeft установлен в процентах от экрана

<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" /> 

ответ

1

Вы не можете установить процент в качестве значения заполнения в файле макета XML.

Однако вы можете установить его в Java-коде, вычислив правильную длину в px.

+0

Спасибо. если я хочу установить ширину как 90% от родителя, а высота - 80% от родительского, я установил оба значения 0dp. Как я должен установить layout_weight? как кажется, есть один layout_weight – Hammer

0

Вы можете использовать dimens.xml и поместить их в другую папку values-xxx. Если и хотят 8dp в hdpi устройств и 10dp в hdpi-1024x600, и можно выполнить следующие действия:

  1. Создать dimens.xml в values-hdpi папки.

    <?xml version="1.0" encoding="utf-8"?> 
    <resources> 
        <dimen name="paddingLeft">8dp</dimen> 
    </resources 
    
  2. Создать dimens.xml в values-hdpi-1024x600 папке.

    <?xml version="1.0" encoding="utf-8"?> 
    <resources> 
        <dimen name="paddingLeft">10dp</dimen> 
    </resources 
    
  3. Заменить android:paddingLeft="8dp" на android:paddingLeft="@dimen/paddingLeft"

Надеется, что это помогает.

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> 
Смежные вопросы