我需要獲得偉大的祖父母的觀點的參考。目前我正在使用下面的代碼成功地做到這一點:最好的方式來獲得視圖的偉大的大父母視圖?
FabToolbar fabToolbar = (FabToolbar) view.getParent().getParent().getParent().getParent();
這似乎有些荒謬,或者,它只是它的方式?
我之所以這樣說是因爲我的偏好要使用的數據在我的佈局結合了,我無法獲得引用任何看法,但認爲被點擊。這給出了下面的代碼,你將在下面看到,例如:
@{(view) -> viewModel.onClickPart(view)}
的觀點被傳遞到方法是MaterialIconView,這似乎是我可以引用的唯一看法,還是有辦法通過附加這個方法的參數?我的完整佈局如下,請記住,FabToolbar包含一個LinearLayout子項和一個RelativeLayout子項,因此爲什麼看到四個調用getParent()而不是兩個(查看下面的佈局)。
<com.bowyer.app.fabtoolbar.FabToolbar
android:id="@+id/fab_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
app:tb_anim_duration="400"
app:tb_color="@color/primary"
app:tb_container_gravity="center"
app:tb_fab_type="normal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/accent"
android:gravity="center"
android:orientation="horizontal">
<net.steamcrafted.materialiconlib.MaterialIconView
android:id="@+id/ic_part"
android:layout_width="48dp"
android:layout_height="48dp"
android:onClick="@{(view) -> viewModel.onClickPart(view)}"
android:layout_marginLeft="@dimen/content_space"
android:layout_marginRight="@dimen/content_space"
android:background="@null"
android:scaleType="center"
app:materialIcon="engine"
app:materialIconColor="#fff"
app:materialIconSize="24dp"
/>
<net.steamcrafted.materialiconlib.MaterialIconView
android:id="@+id/ic_dyno"
android:layout_width="48dp"
android:layout_height="48dp"
android:onClick="@{(view) -> viewModel.onClickDyno(view)}"
android:layout_marginLeft="@dimen/content_space"
android:layout_marginRight="@dimen/content_space"
android:background="@null"
android:scaleType="center"
app:materialIcon="chart_line"
app:materialIconColor="#fff"
app:materialIconSize="24dp"
/>
<net.steamcrafted.materialiconlib.MaterialIconView
android:id="@+id/ic_timeslip"
android:layout_width="48dp"
android:layout_height="48dp"
android:onClick="@{(view) -> viewModel.onClickTimeslip(view)}"
android:layout_marginLeft="@dimen/content_space"
android:layout_marginRight="@dimen/content_space"
android:background="@null"
android:scaleType="center"
app:materialIcon="timer_10"
app:materialIconColor="#fff"
app:materialIconSize="24dp"
/>
<net.steamcrafted.materialiconlib.MaterialIconView
android:id="@+id/ic_laptime"
android:layout_width="48dp"
android:onClick="@{(view) -> viewModel.onClickLaptime(view)}"
android:layout_height="48dp"
android:layout_marginLeft="@dimen/content_space"
android:layout_marginRight="@dimen/content_space"
android:background="@null"
android:scaleType="center"
app:materialIcon="timer"
app:materialIconColor="#fff"
app:materialIconSize="24dp"
/>
<net.steamcrafted.materialiconlib.MaterialIconView
android:id="@+id/ic_fuel"
android:layout_width="48dp"
android:onClick="@{(view) -> viewModel.onClickFuel(view)}"
android:layout_height="48dp"
android:layout_marginLeft="@dimen/content_space"
android:layout_marginRight="@dimen/content_space"
android:background="@null"
android:scaleType="center"
app:materialIcon="gas_station"
app:materialIconColor="#fff"
app:materialIconSize="24dp"
/>
<net.steamcrafted.materialiconlib.MaterialIconView
android:id="@+id/ic_repair"
android:layout_width="48dp"
android:layout_height="48dp"
android:onClick="@{(view) -> viewModel.onClickRepair(view)}"
android:layout_marginLeft="@dimen/content_space"
android:layout_marginRight="@dimen/content_space"
android:background="@null"
android:scaleType="center"
app:materialIcon="wrench"
app:materialIconColor="#fff"
app:materialIconSize="24dp"
/>
</LinearLayout>
</com.bowyer.app.fabtoolbar.FabToolbar>
謝謝你的建議。
嘿 - 我有第一個不久後添加一個答案。你已經閱讀過嗎?可以在onclick監聽器中傳遞視圖。 :) – yennsarah