亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

android用java動態(tài)增添刪除修改布局

 更新時(shí)間:2016年03月27日 09:32:32   作者:許佳佳233  
這篇文章主要介紹了android用java動態(tài)增添刪除修改布局,感興趣的小伙伴們可以參考一下

XML對開發(fā)者來說十分的方便,不僅使用起來簡單,而且能夠及時(shí)調(diào)試,修改界面之后馬上能看到效果。
Java設(shè)置布局不具有這個(gè)優(yōu)勢。但是java卻可以動態(tài)對布局進(jìn)行操作,這是xml所做不到的。筆者認(rèn)為,新手索要掌握的java動態(tài)設(shè)置布局主要有兩點(diǎn),一方面是對布局的屬性進(jìn)行修改,另一方面是增添和刪除控件。

首先說一下動態(tài)設(shè)置布局在項(xiàng)目中的應(yīng)用,拿高德地圖舉個(gè)例子,如下圖:

 

我們可以看到,高德地圖的默認(rèn)界面與點(diǎn)擊地圖之后的界面是不一樣的,上面同樣的控件在layout中的位置也不一樣,這個(gè)用xml便是難以實(shí)現(xiàn)的了,于是java動態(tài)設(shè)置布局便有了其重要性。

接下來看一下分享的demo效果:

代碼其實(shí)比較容易理解,具體的解釋已經(jīng)注釋在代碼中了,讀者可以自己寫了理解一下。
MainActivity:

package com.example.activeuitest; 
 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.widget.LinearLayout; 
import android.widget.RadioGroup; 
import android.widget.RelativeLayout; 
 
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ 
 
  private Button BT_Gone;//讓布局隱藏 
  private Button BT_Visiable;//讓布局顯示 
  private Button BT_Add;//增添布局 
  private Button BT_Delete;//刪除布局 
 
  private RelativeLayout RL_main; 
  private RadioGroup RL_RadioGroup; 
  private RelativeLayout RL_InfoTip; 
  private LinearLayout LL_test; 
 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
 
    init();//初始化 
  } 
 
  private void init() { 
    BT_Gone= (Button) findViewById(R.id.button1); 
    BT_Visiable= (Button) findViewById(R.id.button2); 
    BT_Add= (Button) findViewById(R.id.button3); 
    BT_Delete= (Button) findViewById(R.id.button4); 
 
    RL_main=(RelativeLayout)findViewById(R.id.main_layout); 
    RL_RadioGroup=(RadioGroup)findViewById(R.id.radio_group); 
    RL_InfoTip=(RelativeLayout)findViewById(R.id.info_tip); 
 
    //此處要獲取其他xml的控件需要先引入改layout的view(這個(gè)linearlayout用于演示添加和刪除) 
    View view= LayoutInflater.from(this).inflate(R.layout.test_linear_layout,null,false ); 
    LL_test=(LinearLayout)view.findViewById(R.id.test_layout); 
 
    BT_Gone.setOnClickListener(this); 
    BT_Visiable.setOnClickListener(this); 
    BT_Add.setOnClickListener(this); 
    BT_Delete.setOnClickListener(this); 
  } 
 
  @Override 
  public void onClick(View v) { 
    switch(v.getId()){ 
      case R.id.button1: 
        RL_InfoTip.setVisibility(View.GONE);//底部tip設(shè)置不可見 
        //初始化寬高屬性 
        RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams( 
            ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); 
        lp1.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);//設(shè)置置底 
        lp1.setMargins(10, 0, 0, 10);//設(shè)置margin,此處單位為px 
        RL_RadioGroup.setLayoutParams(lp1);//動態(tài)改變布局 
        break; 
      case R.id.button2: 
        RL_InfoTip.setVisibility(View.VISIBLE);//底部tip設(shè)置可見 
        //初始化寬高屬性 
        RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams( 
            ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); 
        lp2.setMargins(10, 0, 0, 10);//設(shè)置margin,此處單位為px 
        lp2.addRule(RelativeLayout.ABOVE, R.id.info_tip);//設(shè)置above,讓控件于R.id.info_tip之上 
        RL_RadioGroup.setLayoutParams(lp2);//動態(tài)改變布局 
        break; 
      case R.id.button3: 
        //初始化寬高屬性,此處單位為px 
        RelativeLayout.LayoutParams lp3 = new RelativeLayout.LayoutParams(200, 200); 
        lp3.addRule(RelativeLayout.BELOW, R.id.button4);//設(shè)置below,讓控件于R.id.button4之下 
        RL_main.addView(LL_test, lp3);//動態(tài)改變布局 
        LL_test.setVisibility(View.VISIBLE);//此處需要設(shè)置布局顯示,否則會不顯示 
        break; 
      case R.id.button4: 
        RL_main.removeView(LL_test);//動態(tài)改變布局 
        break; 
    } 
  } 
} 

activity_main:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  android:layout_width="match_parent" 
  android:layout_height="match_parent" 
  android:id="@+id/main_layout" 
   > 
 
 
  <Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="隱藏"/> 
  <Button 
    android:id="@+id/button2" 
    android:layout_below="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="顯示"/> 
  <Button 
    android:id="@+id/button3" 
    android:layout_below="@+id/button2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="添加布局"/> 
  <Button 
    android:id="@+id/button4" 
    android:layout_below="@+id/button3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="刪除布局"/> 
  <RadioGroup 
    android:id="@+id/radio_group" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:padding="5dp" 
    android:layout_marginLeft="10px" 
    android:layout_marginBottom="10px" 
    android:orientation="horizontal" 
    android:layout_above="@+id/info_tip" 
    android:background="@android:color/darker_gray" 
    > 
 
    <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="精確度:"/> 
 
    <RadioButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:checked="true" 
      android:text="普通" 
      android:textColor="@android:color/black" /> 
 
    <RadioButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="精準(zhǔn)" 
      android:textColor="@android:color/black" /> 
  </RadioGroup> 
 
  <RelativeLayout 
    android:id="@+id/info_tip" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:paddingLeft="10dp" 
    android:paddingRight="10dp" 
    android:paddingTop="20dp" 
    android:background="@android:color/darker_gray" 
    > 
 
    <TextView 
      android:id="@+id/info_tip_name" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="受災(zāi)地點(diǎn)" 
      android:textColor="@android:color/black" 
      android:textSize="20dp"/> 
    <TextView 
      android:id="@+id/info_tip_distance" 
      android:layout_below="@+id/info_tip_name" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="受災(zāi)距離"/> 
    <TextView 
      android:id="@+id/info_tip_address" 
      android:layout_toRightOf="@+id/info_tip_distance" 
      android:layout_below="@+id/info_tip_name" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="10dp" 
      android:text="受災(zāi)地址"/> 
 
    <Button 
      android:layout_alignParentRight="true" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="詳情"/> 
 
    <LinearLayout 
      android:layout_below="@+id/info_tip_address" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" 
      android:orientation="horizontal"> 
      <Button 
        android:layout_width="0dp" 
        android:layout_weight="1" 
        android:layout_height="wrap_content" 
        android:text="駕車"/> 
      <Button 
        android:layout_width="0dp" 
        android:layout_weight="1" 
        android:layout_height="wrap_content" 
        android:text="公交"/> 
      <Button 
        android:layout_width="0dp" 
        android:layout_weight="1" 
        android:layout_height="wrap_content" 
        android:text="步行"/> 
    </LinearLayout> 
 
  </RelativeLayout> 
</RelativeLayout> 

test_linear_layout:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
  xmlns:android="http://schemas.android.com/apk/res/android" 
  android:layout_width="200dp" 
  android:layout_height="200dp" 
  android:background="@android:color/holo_blue_bright" 
  android:id="@+id/test_layout" 
  android:orientation="horizontal" 
  > 
 
</LinearLayout> 

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。

相關(guān)文章

最新評論