Как объединить SlideDrawer и ArrayAdapter - PullRequest
1 голос
/ 24 декабря 2011

Кажется, что New York Times app имеет SlideDrawer, который опускается на ListAdapter. Это эффект, который я пытаюсь достичь. У меня есть собственный listadapter, который отлично работает сам по себе, и у меня есть слайдер, который отлично работает сам по себе. Это два отдельных Activities. Я хочу объединить их так, чтобы над списком переходов была скользящая полоска.

Я попытался SetContentView на ListActivity, который реализует мой ArrayAdapter в XML-файл, в котором находится ящик для слайдов, но я получаю принудительное закрытие. Я думаю, потому что listadapter - это, по сути, куча крошечных раздутых представлений одного и того же xml layout, и я пытаюсь запустить два макета одновременно. Я подумал, что, возможно, ответ кроется в том, как выложен XML-файл, но, честно говоря, понятия не имею.

в любом случае вот код:

import android.view.View;
import android.net.Uri;
import android.os.Bundle;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.SlidingDrawer;
import android.widget.AdapterView.OnItemClickListener;
import android.app.Activity;
import android.app.ListActivity;
import android.content.Intent;

public class BandApp extends ListActivity {
/** Called when the activity is first created. */


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

//here is where I have tried setting slidedrawer layout 
    setContentView(R.layout.slidedrawer)

    Activity activity = this;
    activity.setTitle("@$@#$$@$#$");


    final String[] values = {"Litem0","Litem1","Litem2","Litem3","Litem4","Litem5"};

    MyAdapter Adapter = new MyAdapter(this, values);
    setListAdapter(Adapter);

и для xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="85dp"
>
<TextView
android:layout_height="0dp"
android:layout_width="0dp"
android:id="@+id/textlayout"
/>
</LinearLayout>

Как я уже сказал, они оба прекрасно работают сами по себе, но мне интересно, как объединить их и получить эффект, найденный в приложении New York Times. Спасибо.

Вот изображение того, о чем я говорю. "Поужинайте и вино" наверху сносит вниз, так что я предполагаю, что это ползунок?:

enter image description here

1 Ответ

0 голосов
/ 24 декабря 2011

Выдвижной ящик может выдвигаться только снизу или справа.Это не может прийти сверху.Вы можете проверить этот вопрос для некоторых возможных решений.

Однако код, который у вас есть, даже не даст вам обычный выдвижной ящик.Что вам нужно, так это и ListView, и SlidingDrawer (с дескриптором и т. Д.) В вашем XML, и все это должно быть в макете, который позволяет вещам перекрываться, например, RelativeLayout.Затем в своей деятельности вы установите это как представление содержимого.

Существует рецепт здесь , который позволит ListView быть выше SlidingDrawer, который иногда может быть хитрым

...