2013-10-15 4 views
2

У меня есть простой TextView с помощью следующей разметки XML под файл view_inflated.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="match_parent" 
    android:text="Inflated view" 
    > 
</TextView> 

Я хочу раздувать TextView Внутри LinearLayout заявлены файл activity_main.xml следующим образом:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:id="@+id/ll1" 
     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=".MainActivity" > 

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

     </ListView> 

    </LinearLayout> 

Теперь для надувания вида Я пытался так:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     resource=new String[]{"Arafat","Anik","Prottoy","Progga","Prapti", 
       "Oishy","Nijha","Adil","Troyee","Kushum","Manik","Shahin","Limon" 
       ,"Shumon","Lipi","Lucy","Shaikot"}; 

     ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,resource); 

     lv=(ListView) findViewById(R.id.listView1); 
     lv.setAdapter(adapter); 
     lv.setOnItemClickListener(this); 

     LayoutInflater inflater=getLayoutInflater(); 
     View v=inflater.inflate(R.layout.view_inflated, null); 
     LinearLayout rl=(LinearLayout) findViewById(R.id.ll1); 
     rl.addView(v); 
    } 

проблемы я s - представление списка выглядит так, как ожидалось, но TextView не появляется. Как исправить эту проблему?

+0

попробуйте установить фиксированную высоту в listview – Raghunandan

+0

@Raghunandan В будущем этот список может быть больше. Поэтому я не собираюсь устанавливать фиксированную высоту. Любым другим путем ? –

+0

Значение - установить временное и проверить. –

ответ

1

Мессинг вокруг с вашей проблемой на некоторое время теперь, а затем понял, что вы пропустили

android:orientation="vertical" 

в вашем activity_main.xml :)

Сделайте это и свой проблема будет решена.

Чтобы установить TextView сверху, Заменить главный макет с относительной макете

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/ll1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    tools:context=".MainActivity" > 

    <ListView 
     android:layout_alignParentBottom="true" 
     android:id="@+id/listView1" 
     android:layout_width="match_parent" 
     android:layout_height="400dp" 
     android:layout_gravity="bottom" > 
    </ListView> 

</RelativeLayout> 

напечатанный материал в коде, а затем добавить мнение на этот относительный адаптер Layout до установки в список.

Как это

LayoutInflater inflater = getLayoutInflater(); 
    View v = inflater.inflate(R.layout.view_inflated, null); 
    RelativeLayout rl = (RelativeLayout) findViewById(R.id.ll1); 
    rl.addView(v); 

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, resource); 

    ListView lv = (ListView) findViewById(R.id.listView1); 
    lv.setAdapter(adapter); 
+0

Спасибо, тон! Это решило проблему :) –

+0

еще одно прерывание, пожалуйста :) TextView добавляется ниже ListView, но я хочу обратное. Как это сделать? –

0

Добавить свой завышенный вид в виде нижнего колонтитула в список.

Перед setAdapter

lv=(ListView) findViewById(R.id.listView1); 
LayoutInflater inflater=getLayoutInflater(); 
View v=inflater.inflate(R.layout.view_inflated, null); 
lv.addFooterView(v); 
lv.setAdapter(adapter); 
lv.setOnItemClickListener(this); 
+0

да теперь он выглядит как нижний колонтитул. Но я не всегда хочу, чтобы это был нижний колонтитул. Скорее, я хочу использовать его как можно более гибко. –

+0

хорошо настроил высоту списка на фиксированную высоту.ваш список будет по-прежнему прокручиваться, поэтому никаких проблем. Кстати, что вы подразумеваете под гибкой возможностью. разрабатывать. вы также можете использовать относительный макет, в нижней части которого есть текстовое представление и список вверху. нет необходимости в расшифровке макета – Raghunandan

+0

Я хочу, чтобы список отображался под текстом. Это один из примеров гибкости. Я хочу добавить другое представление между списком и текстом, это другое. –

0
// try this 
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, R.layout.view_inflated,resource); 
Смежные вопросы