簡體   English   中英

以編程方式設置視圖Y位置

[英]Set Views Y position programmatically

我有一個布局,其中有一個RelativeLayout ,其可見性為GONE 此rl是帶按鈕的條的布局,當將可見性設置為visible時,該按鈕出現在片段的底部。 當RL仍然不可見時,有2個按鈕,當我將其設置為可見時,RL覆蓋了按鈕。

我想做的就是簡單地將按鈕移到該條上方即可看到的那條。 我試圖做到的:

rl.setVisibility(View.VISIBLE);
rl.post(new Runnable() 
{   
                int dpToPx(final int dp)
                {
                    return (int) (dp * getResources().getSystem().getDisplayMetrics().density + 0.5f);
                }

                @Override
                public void run() {
                    int h = rl.getHeight(); //height is ready
                    h = dpToPx(h);
                    ImageButton button = (ImageButton)inflate.findViewById(R.id.button1);
                    float y = button.getY();
                    button.setY((float)h+y - 1100);
                    ImageButton button2 = (ImageButton)inflate.findViewById(R.id.button2);
                    y = button2.getY();
                    button2.setY((float)h+y);
                }
            });

帶有-1100的按鈕(該數字只是我檢查過的內容,以查看它如何影響按鈕的位置,並且不會明顯地停留在該位置)正在顯示我想要的位置。 另一個按鈕太高或太低,不再可見。

如何設置位置,使按鈕的Y位置成為舊位置+新顯示的相對布局的高度,使按鈕顯示在其上方?

這很簡單,我們要做的就是將按鈕定位在RelativeLayout的y坐標上。

我們可以通過調用以下方法獲得y坐標:

rl.getY();

並且由於我們希望按鈕位於rl上方,因此我們將從rl的y坐標中減去其高度,如下所示:

button.setY(rl.getY() - button.getHeight());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM