2016-04-28 79 views
0

我怎麼能做到這樣的一個按鈕,如下顯示視圖相對於Android的

enter image description here

顯示的圖像,所以我想的是,一旦我做出點擊或長的一個任意的按鈕我想說明一個佈局的按鈕是頂部contaning幾個按鈕點擊

我有以下XML

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


    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:weightSum="3"> 

     <Button 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:text="showme" 
      android:id="@+id/button36" 
      android:layout_weight="1" /> 

     <Button 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:text="showme" 
      android:id="@+id/button37" 
      android:layout_weight="1" /> 

     <Button 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:text="showme" 
      android:id="@+id/button38" 
      android:layout_weight="1" /> 
    </LinearLayout> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:weightSum="4"> 

     <Button 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:text="clickme" 
      android:id="@+id/button39" 
      android:layout_weight="1" /> 

     <Button 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:text="clickme" 
      android:id="@+id/button40" 
      android:layout_weight="1" /> 

     <Button 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:text="clickme" 
      android:id="@+id/button41" 
      android:layout_weight="1" /> 

     <Button 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:text="clickme" 
      android:id="@+id/button42" 
      android:layout_weight="1" /> 

    </LinearLayout> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:weightSum="4" > 

     <Button 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:text="clickme" 
      android:id="@+id/button43" 
      android:layout_weight="1" /> 

     <Button 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:text="clickme" 
      android:id="@+id/button44" 
      android:layout_weight="1" /> 

     <Button 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:text="clickme" 
      android:id="@+id/button45" 
      android:layout_weight="1" /> 

     <Button 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:text="clickme" 
      android:id="@+id/button46" 
      android:layout_weight="1" /> 
    </LinearLayout> 
</LinearLayout> 

其中g艾夫斯我下面的結果: enter image description here

所以基本上我有第一的LinearLayout containings名爲「SHOWME」,我想相對於展示給任何按鈕的頂部位置,我從過去兩年的LinearLayout命名點擊按鈕「clickme 」。

我想我應該在java代碼中做到這一點,但我只是無法弄清楚如何在xml佈局中實現它。

回答

0

我希望 這將適用於你。這裏也是來源。 popup menu

// activity_main.xml 

<RelativeLayout xmlns:androclass="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:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginLeft="62dp" 
     android:layout_marginTop="50dp" 
     android:text="Show Popup" /> 

</RelativeLayout> 

//popupmenu.xml 

<menu xmlns:androclass="http://schemas.android.com/apk/res/android" > 

    <item 
     android:id="@+id/one" 
     android:title="One"/> 

    <item 
     android:id="@+id/two" 
     android:title="Two"/> 

    <item 
     android:id="@+id/three" 
     android:title="Three"/> 

</menu> 

//MainActivity.java 

package com.javatpoint.popupmenu; 
import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.PopupMenu; 
import android.widget.Toast; 
public class MainActivity extends Activity { 
Button button1; 

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

      button1 = (Button) findViewById(R.id.button1); 
      button1.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
      //Creating the instance of PopupMenu 
      PopupMenu popup = new PopupMenu(MainActivity.this, button1); 
      //Inflating the Popup using xml file 
      popup.getMenuInflater().inflate(R.menu.popup_menu, popup.getMenu()); 

      //registering popup with OnMenuItemClickListener 
      popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { 
      public boolean onMenuItemClick(MenuItem item) { 
       Toast.makeText(MainActivity.this,"You Clicked : " + item.getTitle(),Toast.LENGTH_SHORT).show(); 
       return true; 
      } 
      }); 

      popup.show();//showing popup menu 
      } 
      });//closing the setOnClickListener method 
     } 
    } 
+1

你甚至看問題的XML風格???你的ans與這個問題無關 –

+0

@neo因爲Zahan Safallwa說這不是我所要求的。我的問題是在佈局本身而不是如何setonlongclicklistener – has19

+0

@Neo彈出菜單是垂直我需要他們horizentally與我自己的佈局。我想通過簡單地使用被點擊的按鈕的x和y位置來顯示它們,並添加我想要的關於這些位置的視圖.thx無論如何 – has19

0

動態設置與選擇

+0

我不認爲選擇器與我的問題有什麼關係請詳細解釋 – has19