Я думал, что первый элемент не был добавлен в список, но я заметил, что его добавили, потому что когда я помещал marginTop android:layout_marginTop="?android:attr/actionBarSize"
, появился элемент ListView. Что мне делать, чтобы исправить это?
Без атрибута android:layout_marginTop="?android:attr/actionBarSize"
первый элемент исчезает, он находится за ActionBar.Первый элемент ListView ago ActionBar
activity_settings.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.simplerecorder.preferences.SettingsActivity">
<ListView
android:id="@+id/listSettings"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="?android:attr/actionBarSize"
android:divider="@drawable/list_separator"
android:dividerHeight="3dp" />
</RelativeLayout>
в SettingsActivity.java
listView = (ListView) findViewById(R.id.listSettings);
String[] titles = context.getResources().getStringArray(R.array.titles);
String[] descs = context.getResources().getStringArray(R.array.descs);
listAdapter = new SettingsAdapter(context, titles, descs);
listView.setAdapter(listAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
switch (position) {
case 0:
prefsDialogs.dgColorPicker();
break;
case 1:
prefsDialogs.dgNotify();
break;
case 2:
prefsDialogs.dgFolderPicker();
break;
}
}
});
}
arrays.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="titles">
<item>Cor do widget</item>
<item>Onde salvar</item>
</string-array>
<string-array name="descs">
<item>Mude a cor do widget aqui</item>
<item>Escolha a pasta de sua preferencia</item>
</string-array>
</resources>
Это нормальное поведение. Нечего исправить. Панель инструментов - это просто лист над другими элементами пользовательского интерфейса. Если вы хотите, чтобы ваши другие элементы пользовательского интерфейса отображались под ним, вы должны сообщить им. Установив marginTop или используя RelativeLayout и установите под панелью инструментов. – Knossos
Спасибо, я использую RelativeLayout.LayoutParams и marginTop, но я думал, что это ошибка в моем коде. – Lucas