2016-06-13 50 views
0

我目前正在開發一個使用卡片的應用程序。我在官方Google應用中看到了卡片的使用情況。如何在Android上安排卡片?

然而,谷歌的應用程序不同,在手機和平​​板電腦了一下。

在手機上就說明下卡 - 對方沒有在他們旁邊的空間。 (這也確實是我的手機在橫向模式)

在平板電腦上它把兩張牌相鄰。 (有時是一大兩小,有時是兩個同等大小)

能有人在這裏給我解釋一下他們是如何做到這一點,什麼樣的XML或Java我需要添加的,把一個類似的功能到應用中。 (我現在有工作卡在我的應用程序,但他們有寬度設置爲FILL_PARENT使其充滿整個屏幕)

非常感謝你提前:)

回答

1

他們用RecyclerView和不同的LayoutManager來實現這一目標。

的代碼的例子是這樣的:

// during onCreate 
RecyclerView rv = (RecyclerView)findViewById(R.id.recycler); 
LayoutManager lm; 
if(isPhone) { 
    if(isLandscape) { 
     lm = new GridLayoutManager(this, 2); 
    } else { 
     lm = new LinearLayoutManager(this); 
    } 
} else { 
    if(isLandscape) { 
     lm = new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL); 
    } else { 
     lm = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL); 
    } 
} 
rv.setLayoutManager(lm); 
rv.setAdapter(... your adapter with the cards...); 

爲了實現不同的間距之間的項目,你可以使用一個RecyclerView.ItemDecoration。如果你需要的頁眉,頁腳,或其他實用程序,我建議你看看我的圖書館RecyclerViewTools on GitHub

+0

看起來像這就是我要找的。如果明天我不能得到更好的解釋(現在是晚上11:15,現在我會睡一會兒),我會選擇你的答案作爲正確的答案。感謝代碼。這是非常棒的工作! :) – Felix

+1

忘了提及。爲了使不同的間距在中間卡,您可以使用https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemDecoration.html 如果你的回收站越來越複雜,一定要檢查我的圖書館有一堆的工具:https:// github。com/eyeem/RecyclerViewTools – Budius

+0

好吧。這超出了我所需要的:)我希望我能設法在明天完成這兩張牌。與您的參考。如果有關於RecyclerView的一些YouTube教程,那麼它不會是一個大問題。其他人,我會閱讀整個文檔,直到它的工作。 – Felix

0

他們定義了一個單獨的佈局文件較大的器件在像res/layout-large/my_layout.xml這樣的目錄中。 Android會自動爲設備選擇合適的佈局。欲瞭解更多信息請查看以下鏈接:

https://developer.android.com/guide/practices/screens_support.html https://developer.android.com/training/multiscreen/screensizes.html

+0

沒關係。 thx,這讓我明白它如何與XM一起工作。但是當我想要生成這些佈局時呢?任何想法? :) – Felix

+0

嗯,一種方法是讓您的代碼檢查您只包含在平板電腦佈局中的佈局元素。如果它存在/不是null,則使用您的平板電腦優化代碼。 –

0

的Android允許使用的不同佈局的XML文件根據你使用的資源文件夾不同的屏幕配置。

例如一個佈局資源文件夾命名佈局sw400dp將在租賃400dp寬

顯示在屏幕上閱讀起來就可以了on the official documentation

+0

好吧。 thx,這讓我明白它如何與XM一起工作。但是當我想要生成這些佈局時呢?任何想法? :) – Felix

+0

您是否閱讀過文檔(不僅僅是我鏈接的那個頁面,而且是爲了一般的android開發)?你試過什麼了? – MrSalmon

+0

https://drive.google.com/file/d/0B2S68gOtHjoXOW5tRGRYMTdHazA/view?usp=sharing那一個。我今天閱讀了關於撲克牌的所有指南,並且我想我也閱讀關於撲克牌的所有文件。 – Felix