0

enter image description hereComment obtenir la couleur d'arrière-plan d'un fragment de dialogue ou d'une fenêtre?

Le texte rouge est sorti un peu petit. Voici ce qu'il dit:

besoin d'obtenir la couleur de fond de la boîte de dialogue pour que je puisse mettre l'arrière-plan de la textview « plus d'information » à cette même couleur. Besoin de faire cela par programme parce que la couleur de la boîte de dialogue est différente selon le niveau de l'API.

code Java:

public class CityDetailDialog extends DialogFragment { 

    private SharedPreferences sharedPreferences; 
    private City mCity; 
    private LinearLayout mCityContainerLayout; 
    private ImageView mImageFlag; 
    private TextView mTextCity; 
    private ImageView mImageCity; 
    private ImageButton mButtonGoogleMaps; 
    private ImageButton mButtonWikipedia; 
    private TextView mMoreInfoTextView; 

    public CityDetailDialog() { 
    } 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, 
          @Nullable Bundle savedInstanceState) { 
     sharedPreferences = getActivity().getSharedPreferences("settings", Context.MODE_PRIVATE); 
     return inflater.inflate(R.layout.dialog_city_detail, container, false); 
    } 

    @Override 
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 
     mCity = (City) getArguments().getSerializable("city"); 
     mCityContainerLayout = (LinearLayout) view.findViewById(R.id.container_city_dialog); 
     mImageFlag = (ImageView) view.findViewById(R.id.flag_image); 
     mTextCity = (TextView) view.findViewById(R.id.city_name); 
     mImageCity = (ImageView) view.findViewById(R.id.city_image); 
     mButtonGoogleMaps = (ImageButton) view.findViewById(R.id.button_google_maps); 
     mButtonWikipedia = (ImageButton) view.findViewById(R.id.button_wikipedia); 
     mMoreInfoTextView = (TextView) view.findViewById(R.id.more_info_label); 

     mImageFlag.setImageResource(ResourceByNameRetriever.getDrawableResourceByName(mCity. 
       getCountryName(), getActivity())); 
     mTextCity.setText(ResourceByNameRetriever.getStringResourceByName(mCity.getCityName(), 
       getActivity())); 
     Picasso.with(getActivity()).load(mCity.getImageUrl()).into(mImageCity); 

     mButtonGoogleMaps.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent mapsIntent = new Intent(Intent.ACTION_VIEW); 
       mapsIntent.setData(Uri.parse("geo:" + mCity.getCoordinates())); 
       Intent chooser = Intent.createChooser(mapsIntent, getString(R.string.launch_maps)); 
       startActivity(chooser); 
      } 
     }); 

     mButtonWikipedia.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent wikiIntent = new Intent(Intent.ACTION_VIEW); 
       wikiIntent.setData(Uri.parse(mCity.getWikiUrl())); 
       Intent chooser = Intent.createChooser(wikiIntent, getString(R.string.launch_browser)); 
       startActivity(chooser); 
      } 
     }); 
    } 

}

+0

s'il vous plaît partager code Java que vous avez écrit pour implémenter le dialogue. –

+0

@KavachChandra ajouté – Nico

+0

J'ai essayé de lancer une application avec diverses méthodes telles que mMoreInfoTextView.bringToFront() et la mise en couleur de fond textView mais n'a pas pu obtenir l'effet que vous avez montré dans l'image à droite. TexView prenait toujours l'arrière-plan des éléments en-dessous, c'est-à-dire quand je franchissais une ligne, la ligne était encore visible même lorsque je mettais la vue en avant. La seule solution à laquelle je pense est de modifier votre mise en page xml. S'il vous plaît partager ce code si vous pensez qu'il peut aussi une solution. –

Répondre

1

Basé sur le code dans votre fichier xml sur github suite à des changements doivent être faits pour obtenir l'effet désiré:

<LinearLayout 
     android:id="@+id/container_buttons" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:baselineAligned="false" 
     android:orientation="horizontal" 
     android:layout_below="@+id/relativeLayout"> 

. 
. 
. 
</LinearLayout> 
<RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:id="@+id/relativeLayout"> 

     <View 
      android:id="@+id/horizontal_divider1" 
      android:layout_width="wrap_content" 
      android:layout_height="2dp" 
      android:layout_centerInParent="true" 
      android:background="@color/gray" 
      android:layout_toLeftOf="@+id/more_info_label" 
      android:layout_toStartOf="@+id/more_info_label"/> 


     <TextView 
      android:id="@+id/more_info_label" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:padding="5dp" 
      android:text="@string/more_info" 
      android:textSize="18dp" /> 

     <View 
      android:id="@+id/horizontal_divider2" 
      android:layout_width="wrap_content" 
      android:layout_height="2dp" 
      android:layout_centerInParent="true" 
      android:background="@color/gray" 
      android:layout_toRightOf="@+id/more_info_label" 
      android:layout_toEndOf="@+id/more_info_label"/> 

    </RelativeLayout>