بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

چطور دو listview را در یک activity زیر هم قرار بدم؟

مدیریت گفتگو
PandaStudio 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام دوستان

کسی میدونه چطور میشه 2یا چند لیست ویو را در یک اکتیویتی زیر هم جا داد؟

 

نظرات

sh.khaksar 10 سال پیش
باید از recyclerview استفاده کنید، و همینطور متد AutoMeasurement رو true کنید، در ضمن یادتون نره که برای اینکه این روش به شما نتیجه بده باید android Support Library رو به نسخه 23.2.0 به بعد آپدیت کنید، چون توی نسخه های قبلی RecyclerView از WrapContent پشتیبانی نمیکنه و شما باید اون رو خودتون بنویسید.
PandaStudio 10 سال پیش
ممنون. برای نسخه های پایین چی؟ نظری ندارید؟ بدون recyclerview
sh.khaksar 10 سال پیش
فکر نمیکنم استفاده از recyclerview توی نسخه های پایین ایرادی داشته باشه، البته تست نکردم. راه حل دیگه اینه که بگردید توی اینترنت و custom listview هایی با ساپورت wrap content پیدا کنید.
احمد 10 سال پیش
اط اسکرول ویو و لینیر لایوت زیره هم استفاده کنید
hojat_babaie 10 سال پیش
برای این کار می تونید از یک ریلیتیو لیوت استفاده کنید البته برای این کار کافیه اندازه هر لیست ویورو ازنظر ارتفاع بصور ت ثابت معلوم کنید ولیست ویو ها رو در کلاس جاوا تعریف کنید و با ادپتر مخصوص به خودش مقدار دهی نمایید

پاسخ‌ها 2

SaeiD-as 10 سال پیش

دوستان یه سوال هم من دارم که شبیه به سوال دوستمون هست همینجا میپرسم: داخل برنامه ای مثل کافه بازار برای هر ردیف برنامه هاش از لیست ویو افقی استفاده کرده یا از customView_ها استفاده کرده؟

نظرات

sh.khaksar 10 سال پیش
دقیقا نمیدونم، ولی من خودم چیزی مشابه بازار رو تونستم با RecyclerView پیاده سازی کنم، برای این کار هم LayoutManager ای که RecyclerView استفاده میکرد رو دستکاری کردم به صورت Vertical در آوردم، و برای اینکه راست به چپش هم درست بشه، RecyclerView رو از آخر لود کردم (مثل لیست اس ام اس ها که از آخر به اول میاد، اما این بار چون افقی داریم کار میکنیم از راست به چپ میاد، که رفتار مورد نظر ما رو هم انجام میده)
SaeiD-as 10 سال پیش
سپاس از جوابتون، recyclerView رو چطوری میشه با اکلیپس طراحی کرد؟ (من هنوز با اکلیپس کار میکنم و امیدوارم استاد در آموزش های جدیدشون از اندروید استفاده کنند و ما هم به اون سمت بریم :) )، بطور کلی recyclerView همون کار لیست ویو رو انجام میده یا فرق میکنه؟
sh.khaksar 10 سال پیش
recyclerView نیاز به کتاب خونه مخصوصش داره، و بعد از اضافه کردن به پروژتون میتونید توی XML ازش استفاده کنید، ولی نمیدونم آیا با اکلیپس سازگار داره یا نه.
احمد 10 سال پیش
بله سازگاری داره
hojat_babaie 10 سال پیش

سلام  دوستان برای استفاده از دو لیست ویو در یک اکتیویتی ویا استفاده از چند اسکرول ویو ویا استفاده از  یک اسکرول ویو ویک لیست ویو  می تو نید از RelativeLayout استفاده کنید مثل

 

همین طور که می بینید:

کد xml:

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


    <ListView
        android:id="@+id/lstOne"
        android:layout_width="match_parent"
        android:layout_height="150dip"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" android:background="#ffffff">

    </ListView>


    <ListView
        android:id="@+id/lstTwo"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/setting_testtext"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/lstOne" >

    </ListView>

</RelativeLayout>

جاوا:

 public class ActivityMain extends Activity {

    public ArrayAdapter adapter, adapterTwo;


    @Override
    protected void onResume() {
        G.currentActivity = this;
        super.onResume();

        if (adapter != null) {
            adapter.notifyDataSetChanged();
        }
    }


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.lst_tow_in_one);
        final ListView lstOne = (ListView) findViewById(R.id.lstOne);
        final ListView lstTwo = (ListView) findViewById(R.id.lstTwo);
        adapter = new AdapterNote(G.notes);
        lstOne.setAdapter(adapter);
        adapterTwo = new AdapterNoteTwo(G.notes);
        lstTwo.setAdapter(adapterTwo);

        for (int i = 0; i < 10; i++) {
            StructNote note = new StructNote();
            note.title = "Title " + i;
            note.description = "Description " + i;
            note.done = false;
            G.first.add(note);
            G.notes.add(note);
        }

    }

}

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .