2011-09-19 4 views
2

대화 상자를 화면의 특정 위치 (위쪽에서 10px 및 let에서 -5px까지)에 배치하고 싶습니다.특정 x, y 위치에 테마 대화 상자가 적용된 위치를 지정하십시오.

테마를 적용하고 android:scrollX, android:scrollY을 추가했지만 작동하지 않는 것 같습니다.

모든 해결 방법은 무엇입니까?

다음은 내 스타일링 XML입니다.

<style name="Theme.MyDialog1" parent="android:style/Theme.Dialog"> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:windowBackground">@android:color/transparent</item> 
    <item name="android:layout_width">300dp</item> 
    <item name="android:scrollX">-10dp</item> 
    <item name="android:scrollY">-5dp</item> 
</style> 

편집 :

는 또한 android:layout_xandroid:layout_y하지만 아무 소용이 시도!

이 내가 을 가지고있는 하나! [여기에 이미지 설명을 입력합니다] [1]

하지만 내가 정말 원하는 것은 단지 특정 x와 y 양에 위치 가입 로고 아래에있는 것입니다! !! [여기에 이미지 설명을 입력하십시오] [2]

+0

구글에 의한 일반적인 조언이 아닌 같은 정상이어야한다 이런 종류의 것을 바꾸기 위해, 사용자는 기대치를 가지고 있으며, 사용자에게 비표준을 수행했기 때문에 표준에 미치지 못하는 플래그를 사용합니다. – Merlin

답변

4

이것은 코드입니다!

LayoutParams lp = this.getWindow().getAttributes(); 
      lp.x=50;lp.y=20;lp.width=100;lp.height=200;lp.gravity=Gravity.TOP | Gravity.LEFT; 
      lp.dimAmount=0;    
      lp.flags=LayoutParams.FLAG_LAYOUT_NO_LIMITS | LayoutParams.FLAG_NOT_TOUCH_MODAL; 
this.setContentView(view, lp); 
+0

이것이 답입니까? '이게 코드 1'이라는게 무슨 소리 야? – Ronnie

+0

죄송합니다. 느낌표를 사용하고 싶습니다. – Sana

+0

새 값으로 setAttributes()를 호출하십시오. 그렇지 않으면 변경 한 값의 일부 또는 전체가 적용되지 않는 경우가 있습니다. – hackbod

1

패널 테마를 확장하여 대화 상자 테마를 확장하지 마십시오.

<style name="Theme.CustomPanel" parent="@android:style/Theme.Panel">   
     <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> 
     <item name="android:backgroundDimEnabled">true</item> 
    </style> 

이렇게하면 대화 상자처럼 중앙에 위치하지 않는다는 점을 제외하면 대화 상자와 유사한 창이 생성됩니다. 그런 다음 평소와 같이 활동을 시작하십시오. 왼쪽 상단에서 10px 그냥 레이아웃에 패딩을 넣어에서

그것이 5px하려면

<!-- res/layout/your_layout.xml --> 
    <FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:paddingTop="10px" 
    android:paddingLeft="5px"></FrameLayout> 

물론 활동은

public class NonCenteredDialogActivity extends Activity{ 
     protected void onCreate(Bundle bundle){ 
      super.onCreate(bundle); 
      setContentView(R.layout.your_layout); 
     } 
    } 
관련 문제