2016-03-07 2 views
0

вот в чем проблема. У меня есть listview и группа строк массива. Я хочу заполнить listview одним текстовым представлением для каждой строки. строки вводятся, но после инъекции макет не repsect тот, который я определил в tip_row.xml (в частности, я не вижу каких-либо полей и высота)ListView SetAdapter() Проблема с макетом

Вот код:

TipsFragment.java

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    FragmentActivity superActivity = super.getActivity(); 
    lLayout = (LinearLayout) inflater.inflate(R.layout.tips_fragment, container, false); 

    String[] general_tips = getResources().getStringArray(R.array.general_tips); 
    List<String> tips = new ArrayList<>(Arrays.asList(general_tips)); 
    tv = (TextView)lLayout.findViewById(R.id.general_tip_header); 
    tv.setText("Advises"); 
    lv = (ListView)lLayout.findViewById(R.id.general_tips_list_view); 
    ArrayAdapter<String> itemsAdapter = new ArrayAdapter<String>(superActivity, R.layout.tip_row, tips); //the layout is tip_row 
    lv.setAdapter(itemsAdapter); 

    String[] noobs_tips = getResources().getStringArray(R.array.noob_tips); 
    //tips.clear(); 
    tips.addAll(Arrays.asList(noobs_tips)); 

    String[] pro_tips = getResources().getStringArray(R.array.pro_tips); 
    //tips.clear(); 
    tips.addAll(Arrays.asList(pro_tips)); 

    //overrideFonts(superActivity, container); 
    return lLayout; 
} 

tips_fragment.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<include android:id="@+id/general_tip_header" 
    layout="@layout/tips_header"/> 

<ListView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/general_tips_list_view"></ListView></LinearLayout> 

tips_header.xml

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/textView1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="10dp" 
    android:layout_marginBottom="10dp" 
    android:elevation="4dp" 
    android:gravity="center" 
    android:textSize="30sp" 
    android:text="General Problems" /> 

tip_row.xml

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tip_row" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:padding="10dp" 
    android:layout_margin="30dp" 
    android:textSize="20sp" 
    android:text="Test" 
    android:elevation="9dp"/> 

Обратите внимание, что в tip_row.xml я определил android:elevation и android:layout_margin, но это два атрибута не оказывают мое приложение.

Здесь вы можете найти скриншот: Imgur

PS: Я могу успешно изменить размер шрифта или отступы, единственные вещи, которые не работают в возвышенности и запас для этого ряда элементов. Высота не работает либо в tips_header.xml

Благодарности

+0

Поле высоты будет работать только для новых версий Android, я считаю, что Lollipop и выше. – chRyNaN

+0

В настоящее время я разрабатываю API 23 и отлаживаю с помощью android 5.1 – Naramsim

ответ

1

Попробуйте это. Добавьте родителя RelativeLayout в ваш элемент TextView и установите android:clipToPadding="false" в родительский.

<RelativeLayout 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="wrap_content" 
     android:clipToPadding="false"> 

    <TextView 
     android:id="@+id/tip_row" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:padding="10dp" 
     android:layout_margin="30dp" 
     android:textSize="20sp" 
     android:text="Test" 
     android:elevation="9dp"/> 
    </RelativeLayout> 

Для получения дополнительной информации ознакомьтесь @Justin Pollard answer

Надежда его помогает!

Смежные вопросы