2017-07-28 85 views
0

Android新手在這裏,獲取元素的ID和訂單

我有一個應用程序,顯示項目列表。每個項目看起來像這樣。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    style="@style/AppTheme.FrameLayout" 
    android:id="@+id/job_list_item_main_frame"> 

    <!-- cut inside code for example --> 

</FrameLayout> 

一次可能有10-100個在屏幕上。我需要爲單獨的進程獲取第一個元素的高度。

如何選擇此元素?

編輯:它將永遠是我需要檢索的列表中的第一項。但是,如果有辦法單獨選擇每個項目(id爲job_list_item_main_frame)並獲得它的位置,那將是理想的。

編輯2:我正在做一個教程。有一個疊加箭頭指向圖像。但是,根據列表項的高度,圖像位置會改變約20dp。所以我需要根據列表項目對箭頭進行調整。 這是在Recycler View。讓我快速檢查一下它使用的適配器。

+2

你是什麼意思的「第一元素」?體位?它會始終是第一個,還是在運行時改變位置?如果沒有,並且如果我理解正確 - 您可以簡單地用您選擇的ID命名第一個元素,並通過代碼findViewById(「firstElement」)檢索它。請澄清你的問題 – Barackos

+1

你使用'ListView'或'RecyclerView'來顯示這個嗎? –

+0

@AjilO。一個'RecyclerView',但它是用於應用程序的「教程」部分的,所以如果它被刪除或者因爲它會馬上運行就沒問題。 –

回答

1

在適配器你有一個方法onBindViewholder(viewholder, position);

在該方法中,您可以檢查position是否爲0.如果是這種情況,您最有可能會參考View you nee d。類似於viewholder.yourView

在該視圖上,您​​可以獲得LayoutParams並從那裏獲取hight

唯一的問題是,如果我不是mistakend,那麼hight是以像素爲單位的,如果您在dp中需要它,您必須執行設備特定的轉換。

如果您需要進一步的指導,請發佈您的適配器。

1

在您的適配器爲RecyclerView

@Override 
public void onBindViewHolder(AcceptViewHolder h, int position) { 
    //position variable can be used to modify and alter 
    //any value you want 
} 

例如,如果你需要隱藏的第三個元素,你可以做這樣的事情

if (position == 2) { 
    //do something here 
}