[SOLVED] AndroidSlidingUpPanelLayout zeigt Listen Elemente erst nach minimieren

kpj

NGBler
Registriert
27 Juli 2014
Beiträge
98
Moin,
ich nutze gerade das mit einem ListView als Main Layout und einem Relative Layout als Sliding Panel. Hier die XML Datei:
[src=xml]
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<com.sothree.slidinguppanel.SlidingUpPanelLayout
xmlns:sothree="http://schemas.android.com/apk/lib/com.sothree.slidinguppanel"
android:id="@+id/bottom"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bar_background"
android:gravity="bottom"
android:orientation="horizontal"
sothree:collapsedHeight="40dp" >

<ListView
android:id="@+id/song_list"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="42"
android:fastScrollEnabled="true" />

<RelativeLayout
android:id="@+id/bottom_bar_preview"
android:layout_width="match_parent"
android:layout_height="300dp"
android:background="@color/bar_background"
android:orientation="horizontal" >
</RelativeLayout>
</com.sothree.slidinguppanel.SlidingUpPanelLayout>

</LinearLayout>
[/src]
Das Problem ist nun, dass der Inhalt der Liste erst sichtbar wird, nachdem man das Relative Layout einmal nach oben und wieder nach unten gewischt hat. Das SlidingUpPanelLayout selbst liegt in einem Fragment, welches dann von einem FragmentPagerAdapter zur Verfügung gestellt wird. Ich habe außerdem gemerkt, dass der Inhalt der Liste verschwindet, wenn man sich zwei Tabs von dem Fragment entfernt.
Hier ist der Code vom Fragment:
[src=java]
public abstract class Songs extends Fragment {
protected ArrayList<String> elements;
protected SonglistAdapter adapter;

public Songs(ArrayList<String> es) {
elements = es;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
LinearLayout rootView = (LinearLayout) inflater.inflate(R.layout.list_songlist, container, false);

ListView lview = (ListView) rootView.findViewById(R.id.song_list);
adapter = new SonglistAdapter(inflater, elements);
lview.setAdapter(adapter);

return rootView;
}
}
[/src]
und der Adapter:
[src=java]
public class SonglistAdapter extends BaseAdapter {
private ArrayList<String> elements;
private LayoutInflater inflater;

public SonglistAdapter(LayoutInflater infl, ArrayList<String> es) {
elements = es;
inflater = infl;
}

@Override
public int getCount() {
return elements.size();
}

@Override
public Object getItem(int i) {
return elements.get(i);
}

@Override
public long getItemId(int i) {
return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
RelativeLayout layer = (RelativeLayout) inflater.inflate(R.layout.list_songlist_item, parent, false);

// fill current item with information
TextView view = (TextView) layer.findViewById(R.id.song_title);
view.setText(elements.get(position));

return layer;
}
}
[/src]
Das Fragment wird wie folgt erstellt:
[src=java]
ArrayList<String> arr = new ArrayList<String>();
arr.add("Hello");
arr.add("Bye");

ContentHandler.overviewFragment = new Overview(arr);
[/src]
'ContentHandler.overviewFragment' wird dann in 'public Fragment getItem(int index)' returned.

Ich habe schon durch den Code vom AndroidSlidingUpPanel geschaut und dachte, dass ich die Ursache des Fehlers in Datei in 'protected void onLayout(boolean changed, int l, int t, int r, int b)' finden könnte.
Leider konnte ich zwischen den Aufrufen vor und nach Bedienung des Sliding Layouts keinen Unterschied feststellen.

Hat jemand von euch eine Ahnung, was ich falsch machen könnte?
Vielen Dank für jeden Tipp,
kpj
 
Zuletzt bearbeitet:
  • Thread Starter Thread Starter
  • #2
Re: [ANDROID] AndroidSlidingUpPanelLayout zeigt Listen Elemente erst nach minimieren

Die Lösung war die layout_height des ListViews auf match_parent zu setzen.

meta: Kann ich den Threadtitel irgendwie auf [SOLVED] setzen?
 
Re: [ANDROID] AndroidSlidingUpPanelLayout zeigt Listen Elemente erst nach minimieren

klar - du kannst deinen oberen beitrag editieren - im erweiterten Editor kann man auch den Threadtitel ändern.
 
  • Thread Starter Thread Starter
  • #4
Ah, hatte ich ganz übersehen, vielen Dank!
 
Zurück
Oben