2014-12-18 3 views
1

Я использую PopupWindow, который работает нормально, но проблема заключается в том, чтобы раздуть макет с видом на его шоу с черной рамкой.удалить черную рамку с раздутого макета

final PopupWindow popupWindow = new PopupWindow(context); 
LayoutInflater inflater = (LayoutInflater) context 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
View view = inflater.inflate(R.layout.pop_up_window_menu_layout, null); 
popupWindow.setContentView(view); 

pop_up_window_menu_layout.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:background="@color/solid_white" 
android:orientation="vertical" > 

<TextView 
     android:id="@+id/title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:gravity="center_vertical" 
     android:minHeight="?android:attr/listPreferredItemHeightSmall" 
     android:text="SAVE" 
     android:textAppearance="?android:attr/textAppearanceListItemSmall" 
     android:textColor="@color/black" 
     android:textSize="@dimen/txt_size_sliding_list" /> 

я попытался удалить границу с помощью "popupWindow.setBackgroundDrawable (новый ColorDrawable (Color.TRANSPARENT));" но проблема остается такой же.

может ли кто-нибудь сказать мне, как удалить нежелательную черную рамку?

ответ

2

Я не вижу какие-либо границ вокруг моих всплывающих окон, но я устанавливаю их немного иначе, чем вы. Надеюсь, это указывает на то, что вы в правильном направлении.

popup_view.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:background="#f5f5f5" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

    <TextView 
     android:text="@string/hello_world" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 

    <Button 
     android:id="@+id/btn_close" 
     android:text="Close" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 

</LinearLayout> 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       xmlns:tools="http://schemas.android.com/tools" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:orientation="vertical" 
       android:id="@+id/main_view" 
       tools:context=".MainActivity"> 

    <Button 
     android:id="@+id/btn_popup" 
     android:text="Popup" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 

    <TextView 
     android:id="@+id/txt_text" 
     android:text="@string/hello_world" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 

</LinearLayout> 

MainActivity.java

public class MainActivity extends ActionBarActivity implements View.OnClickListener { 

    View popupView; 
    Button btnPopup; 
    Button btnClose; 
    PopupWindow popupWindow; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     popupView = getLayoutInflater().inflate(R.layout.popup_view, null); 
     btnClose = (Button) popupView.findViewById(R.id.btn_close); 
     btnClose.setOnClickListener(this); 

     popupWindow = new PopupWindow(popupView, 
       ViewGroup.LayoutParams.WRAP_CONTENT, 
       ViewGroup.LayoutParams.WRAP_CONTENT); 

     btnPopup = (Button) findViewById(R.id.btn_popup); 
     btnPopup.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View v) { 
     if (v.getId() == R.id.btn_popup) { 
      popupWindow.showAtLocation(findViewById(R.id.main_view), Gravity.NO_GRAVITY, 100, 200); 
      //popupWindow.showAsDropDown(btnPopup, 10, 10); 
     } else if (v.getId() == R.id.btn_close) { 
      popupWindow.dismiss(); 
     } 
    } 
} 

Screenshot

+0

Привет, mpkuth, можете ли вы добавить цвет backgorund в макете родительского урна внутри "popup_view.xml" на андроид: background = "# f5f5f5" и проверить, не по-прежнему ли ур не получает никакой границы .as если фон - drak или цвет по умолчанию, то это не так легко заметить. с легким фоном, u может найти это очень легко. – Buddy

+0

@mann Обновлен мой ответ с этим фоном и снимок экрана. Я вижу белый фон и черные границы. – mpkuth

+0

да mpluth, как вы предложили я изменил код: popupWindow = новый PopupWindow (popupView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); и удален высота & ширина. так же, как и у, без границы. :-) Большое спасибо за вашу помощь. – Buddy

0

Просто попробуйте это и дайте мне знать ..

Обязательно создать всплывающее окно, ссылающиеся вашу тему:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="DialogTheme" parent="android:Theme.Dialog"> 
     <!-- Fill the screen --> 
     <item name="android:layout_width">fill_parent</item> 
     <item name="android:layout_height">fill_parent</item> 

     <!-- No backgrounds and No titles , and no Window Floating --> 
     <item name="android:windowBackground">@null</item> 
     <item name="android:windowNoTitle">true</item> 
     <item name="android:windowIsFloating">false</item>  

     <!-- Set background what you want--> 
     <item name="android:background">#ff0000</item> 
    </style> 

</resources> 
+0

Привет Маниш, спасибо за Ваш ответ й дали мой родительский макет (pop_up_window_menu_layout.xml) стиль "стиль =" @ стиль/DialogTheme "", но изменился только цвет фона и граница все еще есть. – Buddy

+0

Я добавил стиль ур внутри res/style.xml и дал ссылку на родительский стиль макета. - style "style =" @ style/DialogTheme "" – Buddy

1

Если вы получаете черный Bor это означает, что установлен фон по умолчанию.

это то, как вы удалите его:

popup.setBackgroundDrawable(null); 

Попробуйте

0

Это потому, что вы отправляете контекст внутри всплывающего окна конструктора. -

final PopupWindow popupWindow = new PopupWindow(context); 

Изменить это по мнению всплывающего окна -

View popupView = getLayoutInflater().inflate(R.layout.popup_view, null); 
PopupWindow popupWindow = new Pop 
Смежные вопросы