Ответ 1
Я думаю, что вы должны использовать sp вместо dp.
android:textSize="20sp"
Я хочу отобразить таблицу с редактируемыми полями - см. этот пример:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:paddingLeft="1dip"
android:paddingRight="1dip"
android:paddingBottom="1dip"
android:background="#F00"
>
<ScrollView
android:id="@+id/ScrollView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scrollbars="vertical"
>
<HorizontalScrollView
android:id="@+id/HorizontalScrollView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scrollbars="horizontal"
>
<TableLayout
android:id="@+id/ItemPane"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#EEE"
>
<TableRow
android:id="@+id/DataRow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#888"
android:layout_margin="0dp"
android:gravity="left"
>
<TextView
android:id="@+id/NameField"
android:text="Fieldname"
android:background="#EEE"
android:textSize="14dp"
android:layout_margin="1dp"
android:layout_marginBottom="0dp"
android:paddingLeft="3dp"
android:paddingRight="3dp"
/>
<EditText
android:id="@+id/DataField"
android:text="some field"
android:background="#EEE"
android:textSize="14dp"
android:layout_margin="1dp"
android:layout_marginBottom="0dp"
android:paddingLeft="3dp"
android:paddingRight="3dp"
android:singleLine="true"
/>
<EditText
android:id="@+id/DataField2"
android:text="some longish field content..."
android:background="#EEE"
android:textSize="14dp"
android:layout_margin="1dp"
android:layout_marginBottom="0dp"
android:paddingLeft="3dp"
android:paddingRight="3dp"
android:singleLine="true"
/>
</TableRow>
</TableLayout>
</HorizontalScrollView>
</ScrollView>
</LinearLayout>
Почему атрибут textSize игнорируется в полях EditText? Как я могу сделать текст в этих полях меньшим, чтобы ВСЕ ячейки имели одинаковый размер шрифта? Почему Android не соблюдает этот атрибут, даже если он явно установлен?
Майкл
Я думаю, что вы должны использовать sp вместо dp.
android:textSize="20sp"
Попробуйте "dip" вместо "dp" для свойства textSize. Я не знаю почему, но иногда использование "dp" не влияет, хотя документация говорит, что эти два равны. Поэтому я всегда использую "dip".
Попробуйте следующее в main_Activity.java
final Button btpls=(Button) findViewById(R.id.btpls);
btpls.setOnClickListener(new OnClickListener(){
public void onClick(View t){
float i=textfield.getTextSize();
textfield.setTextSize(i+1) ;
}
});
final Button btmins=(Button) findViewById(R.id.btmins);
btmins.setOnClickListener(new OnClickListener(){
public void onClick(View t){
float n=textfield.getTextSize();
textfield.setTextSize(n-1);
}
});
Глупые системы не позволят мне понижать или комментировать.
sp также не зависит от плотности. Разница между sp и dp заключается в том, что sp масштабируется в соответствии с предпочтениями размера шрифта пользователя. Это означает, что все шрифты и элементы пользовательского интерфейса, которые должны масштабироваться с размером шрифта, должны выполняться в единицах sp. Только единицы, которые не должны масштабироваться с размером шрифта, должны выполняться в единицах dp.
В ваших styles.xml
<style name="HintTextSize" parent="TextAppearance.Design.Hint">
<item name="android:textSize">16sp</item>
<item name="android:paddingLeft">16sp</item>
</style>
<android.support.design.widget.TextInputLayout
android:id="@+id/trailer_one_text_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
**app:hintTextAppearance="@style/TextLabel"
android:layout_marginTop="10dp">
<EditText
android:id="@+id/edit_text_trailer_one"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:hint="@string/trailer_one"
android:inputType="text"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/DrivingDarkGrey"/>
</android.support.design.widget.TextInputLayout>