2016-12-09 3 views
0

Salut, je veux l'ombre à mon tabhost dans mon fragment. Mon code XML estComment donner l'ombre inférieure à FragmentTabHost dans android?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
android:layout_marginTop="60dip" 
> 
<android.support.v4.app.FragmentTabHost 
    android:id="@android:id/tabhost" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 
    <FrameLayout 
     android:id="@android:id/tabcontent" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     android:layout_weight="0" /> 
</android.support.v4.app.FragmentTabHost> 
<FrameLayout 
    android:id="@+id/realtabcontent" 
    android:layout_width="match_parent" 
    android:layout_height="0dip" 
    android:layout_weight="1" /> 
</LinearLayout> 

J'ai essayé toutes les solutions disponibles sur stackoverflow mais cela ne marche pas. S'il vous plaît aider.

+0

Avez-vous essayé l'ombre de liste de calques en arrière-plan du FragmentTabHost? – Vinodh

+0

Non. Comment faire ça? – Mhandroid

+0

avez-vous essayé 'android: élévation =" "' cette propriété? – Shailesh

Répondre

0

Comme j'utilise fragmenttabhost il est impossible de manipuler sa vue.

0

Layer-list drawable est l'un des moyens de donner un effet d'ombre aux vues en les réglant en arrière-plan.

Veuillez suivre cette link pour créer différents drawable pour les vues et vérifier le View Box Shadows mentionné dans ce lien.

+0

Je veux juste l'ombre inférieure. – Mhandroid

+0

Où est le lien? –

+0

@Mhandroid: Oui, vous pouvez définir le bas. Il est expliqué ici – Vinodh

0

enter image description here Il n'y a pas de tel attribut dans Android, pour montrer une ombre. Mais les moyens possibles de le faire sont:

  1. Ajouter une LinearLayout plaine avec la couleur grise, sur laquelle ajouter votre mise en page réelle, avec une marge en bas à 1 ou 2 dp

  2. ont une image 9-patch avec une ombre et le définir comme l'arrière-plan à votre disposition linéaire

Essayez cette .. créer layout_shadow.xml et mis dans le dossier drawable

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="rectangle"> 
      <solid android:color="#CABBBBBB"/> 
      <corners android:radius="2dp" /> 
     </shape> 
    </item> 

    <item 
     android:left="0dp" 
     android:right="0dp" 
     android:top="0dp" 
     android:bottom="2dp"> 
     <shape android:shape="rectangle"> 
      <solid android:color="@android:color/white"/> 
      <corners android:radius="2dp" /> 
     </shape> 
    </item> 
</layer-list> 

Appliquer à votre disposition comme celui-ci

android:background="@drawable/layout_shadow" 

Mise en page finale de l'hôte onglet

<android.support.v4.app.FragmentTabHost 
android:id="@android:id/tabhost" 
android:background="@drawable/layout_shadow" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" > 

Laissez-moi savoir si le travail ne

+0

Non son ne fonctionne pas .Il donne l'ombre de la boîte à la page entière .Mais je veux seulement l'ombre du bas aux onglets – Mhandroid

+0

il fonctionne ici parfaitement si elle ne convient pas pour 2dp Il suffit de changer Android: bas = "4dp" attribut à 4dp ou 10dp et vérifiez –

+0

essayez pour LinerLayout que –