我發現了很多關於View
visibility
的問題。我已經知道.GONE和。之間的區別了。 INVISIBLE
。我不知道的是如何做出適當的切換來製作它們。 VISIBLE/.GONE
每當一個按鈕被點擊。切換視圖可見性
這裏是我需要的:我有一個linear layout
與一些buttons
裏面。我需要他們buttons
隱藏在首位,所以我設置linear layout
爲不見了:
<LinearLayout
android:id="@+id/feelings_layout"
android:layout_below="@+id/feeling_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/happy_btn"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="46dp"
android:text="Happy"/>
<Button
android:id="@+id/sad_btn"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="46dp"
android:text="Sad"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/love_btn"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="46dp"
android:text="in love"/>
<Button
android:id="@+id/mad_btn"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="46dp"
android:text="mad"/>
</LinearLayout>
</LinearLayout>
然後我make'em。當點擊一個按鈕時,會出現VISIBLE
。 GONE
當再次相同button
按:
Button feelingsButton = (Button)contentView.findViewById(R.id.feeling_btn);
feelingsButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "button clicked", Toast.LENGTH_LONG).show();
feelingsButtonsLayout = (LinearLayout)contentView.findViewById(R.id.feelings_layout);
if(feelingsButtonsLayout.getVisibility() == View.GONE){
Log.d("-----------", "gone");
feelingsButtonsLayout.setVisibility(View.VISIBLE);
}else{
Log.d("-----------", "not gone");
for (int i = 0; i < feelingsButtonsLayout.getChildCount(); i++){
View view = feelingsButtonsLayout.getChildAt(i);
view.setVisibility(View.GONE);
}
feelingsButtonsLayout.setVisibility(View.GONE);
}
}
});
一切似乎都做工精細,但是當我點擊同一按鈕第三次,期待它使佈局VISIBLE
,就不會再顯示即使我的log
表示該視圖是gone
(只看到Logcat,它似乎工作正常)。
對此的任何想法?
感謝的人,這是一個很好的解釋。我剛剛刪除了循環,它都工作得很好。我會將上面的答案標記爲已接受的答案,不過因爲它也解決了我的問題,他首先回答好嗎?乾杯! – Rob
@rob檢查先回答的時間,但解釋和回答都需要時間,無論如何,我很高興我可以幫助 –
該死的,對!我的壞人! – Rob