Android 如何隐藏和显示一些图像按钮?
大家好,我是android编程新手,我对xml有很多问题。几个小时前,我问你如何隐藏布局,所有问题都解决了。无论如何,正如我在许多其他问题中看到的那样,我尝试隐藏和显示一些ImageButtons,但不仅ImageButtons不会显示,现在布局也不想显示:/ 这是我的代码:Android 如何隐藏和显示一些图像按钮?,android,android-layout,Android,Android Layout,大家好,我是android编程新手,我对xml有很多问题。几个小时前,我问你如何隐藏布局,所有问题都解决了。无论如何,正如我在许多其他问题中看到的那样,我尝试隐藏和显示一些ImageButtons,但不仅ImageButtons不会显示,现在布局也不想显示:/ 这是我的代码: public class Hide_Unhide extends Activity { LinearLayout barrainfo; ImageButton icotelefono; Imag
public class Hide_Unhide extends Activity {
LinearLayout barrainfo;
ImageButton icotelefono;
ImageButton icoemail;
ImageButton icofacebook;
ImageButton icotwitter;
ImageButton icosito;
ImageButton prova;
public Hide_Unhide (View v){
barrainfo = (LinearLayout)v.findViewById(R.id.links_bar); //tutta la barra
icotelefono = (ImageButton) v.findViewById(R.id.telephone_icon); //pulsante chiamata
icoemail = (ImageButton) v.findViewById(R.id.email_icon); //pulsante nuova mail
icofacebook = (ImageButton) v.findViewById(R.id.facebook_icon); //pulsante facebook
icotwitter = (ImageButton) v.findViewById(R.id.twitter_icon); //pulsante twitter
icosito = (ImageButton) v.findViewById(R.id.sito_icon); //pulsante sito web
};
public void mostra_nascondi(int numero_di_informazioni, int info_number){ //numero di informazioni = 0 (no info) - 1 (si info)
/*if (numero_di_informazioni <= 0){ //info_number = identifica il social o il telefono o l'email
barrainfo.setVisibility(View.GONE); //se per l'info_number = 3 corrisponde un numero informazioni = 0
}else //il locale non ha l'email
{ //
barrainfo.setVisibility(View.VISIBLE); // - - - Schema Informazioni - - - - - - - - - -
// - - - - - - - - + - - - - - - - - - - - - - - -
}*/ // | 2: telefono | num_di_informazioni [0-1] |
// | 3: email | num_di_informazioni [0-1] |
// | 5: facebook | num_di_informazioni [0-1] |
// | 6: twitter | num_di_informazioni [0-1] |
// | 7: Google+ | num_di_informazioni [0-1] |
// | 8: Instagram | num_di_informazioni [0-1] |
// - - - - - - - - - - - - - - - - - - - - - - -
switch (info_number){
case 0:
if (numero_di_informazioni <= 0){
barrainfo.setVisibility(View.GONE);
}else
{
barrainfo.setVisibility(View.VISIBLE);
}
break;
case 2: //telefono
if(numero_di_informazioni <= 0)
{
icotelefono.setVisibility(View.GONE);
}else
{
icotelefono.setVisibility(View.VISIBLE);
}
break;
case 3: //email
if(numero_di_informazioni <= 0)
{
icoemail.setVisibility(View.GONE);
}else
{
icoemail.setVisibility(View.VISIBLE);
}
break;
case 5: //facebook
if(numero_di_informazioni <= 0)
{
icofacebook.setVisibility(View.GONE);
}else
{
icofacebook.setVisibility(View.VISIBLE);
}
break;
case 6: //twitter
if(numero_di_informazioni <= 0)
{
icotwitter.setVisibility(View.GONE);
}else
{
icotwitter.setVisibility(View.VISIBLE);
}
break;
case 7: //sito
if(numero_di_informazioni <= 0)
{
icosito.setVisibility(View.GONE);
}else
{
icosito.setVisibility(View.VISIBLE);
}
break;
}
}
}
谢谢大家。尝试从您的
线性布局中删除android:visibility=“gone”
。父项必须可见才能显示其任何子项您没有中断案例0
@tyczj ok。。我纠正了,但它无论如何都不起作用。谢谢我编辑了我的问题看看这个链接我怀疑你调用的setVisibility()对象不是实际显示的小部件。出于这个原因,我要求提供膨胀代码:可能您的活动一侧有真实布局,而隐藏活动对其他未实际显示的对象有用。非常感谢@think01!!我将把它作为一个答案发布,以防Pierpaolo可能会标记为已解决,因为我花了时间在上面。
<LinearLayout
android:id="@+id/links_bar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/title_bar"
android:background="#222222"
android:orientation="horizontal"
android:gravity="center_horizontal|center_vertical|fill_horizontal"
android:visibility="gone">
<ImageButton
android:src="@drawable/telephone_icon"
android:id="@+id/telephone_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#222222"
android:visibility="gone"/>
<ImageButton
android:src="@drawable/email_icon"
android:id="@+id/email_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/telephone_icon"
android:background="#222222"
android:visibility="gone"/>
<ImageButton
android:src="@drawable/facebook_icon"
android:id="@+id/facebook_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/email_icon"
android:background="#222222"
android:visibility="gone"/>
<ImageButton
android:src="@drawable/twitter_icon"
android:id="@+id/twitter_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/facebook_icon"
android:background="#222222"
android:visibility="gone"/>
<ImageButton
android:src="@drawable/sito_icon"
android:id="@+id/sito_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/twitter_icon"
android:background="#222222"
android:visibility="gone"/>
</LinearLayout>
Hide_Unhide metodo = new Hide_Unhide(v);
int numero_informazioni=0;
tvnomeditta.setText(Dati_history[indice_riga][nome_luogo]); //Stampo il nome del posto
tvindirizzoditta.setText(Dati_history[indice_riga][indirizzo]); //Stampo il suo indirizzo
if(Dati_history[indice_riga][telefono].equals("")){ //scompare/appare se c'è il num di telefono
numero_informazioni=0;
}else
{
tot_informazioni++;
numero_informazioni++;
metodo.mostra_nascondi(numero_informazioni,telefono);
}
if(Dati_history[indice_riga][descrizione].equals("")){ //Se una descrizione esiste la stampo altrimenti
tvdescrizione.setText("Nessuna descrizione"); //scrivo "Nessuna Descrizione"
}else
{
tot_informazioni++;
numero_informazioni++;
tvdescrizione.setText(Dati_history[indice_riga][descrizione]);
}
if(Dati_history[indice_riga][email].equals("")){ //mostra/scompare icona mail
numero_informazioni = 0;
}else
{
tot_informazioni++;
numero_informazioni++;
metodo.mostra_nascondi(numero_informazioni,email);
}
if(Dati_history[indice_riga][facebook].equals("")){ //mostra/scompare icona facebook
numero_informazioni = 0;
}else
{
tot_informazioni++;
numero_informazioni++;
metodo.mostra_nascondi(numero_informazioni,facebook);
}
if(Dati_history[indice_riga][twitter].equals("")){ //mostra/scompare icona twitter
numero_informazioni = 0;
}else
{
tot_informazioni++;
numero_informazioni++;
metodo.mostra_nascondi(numero_informazioni,twitter);
}
if(Dati_history[indice_riga][sito].equals("")){ //mostra/scompare icona sito web
numero_informazioni = 0;
}else
{
tot_informazioni++;
numero_informazioni++;
metodo.mostra_nascondi(numero_informazioni,sito);
}