J'essaye de changer ma hauteur LinearLayout à 50% de la disposition parent quand je clique sur un bouton. Je l'ai fait avec LinearLayout.LayoutParams mais cela ne change pas la hauteur de ma mise en page si je l'appelle quand on clique sur buttonClick depuis une méthode en dehors de onCreate. Mais si je garde LinearLayout.LayoutParams dans onCreate alors ça marche. Comment puis-je le faire quand je clique sur un bouton?L'utilisation de layoutparams en dehors de la méthode oncreate ne fonctionne pas
Ce code fonctionne:
public class ViewReport extends AppCompatActivity {
Button button;
LinearLayout layout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_report);
button=(Button) findViewById(R.id.button);
layout=(LinearLayout) findViewById(R.id.fold);
final LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) layout.getLayoutParams();
lp.height = 0;
lp.width=LinearLayout.LayoutParams.MATCH_PARENT;
lp.weight=0.5f;
}
}
Ce code ne fonctionne pas:
public class ViewReport extends AppCompatActivity {
Button button;
LinearLayout layout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_report);
button=(Button) findViewById(R.id.button);
layout=(LinearLayout) findViewById(R.id.fold);
}
public void Click(View view)
{
Toast.makeText(getApplicationContext(),"tapped",Toast.LENGTH_LONG).show();
LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) layout.getLayoutParams();
lp.height = 0;
lp.width=LinearLayout.LayoutParams.MATCH_PARENT;
lp.weight=0.5f;
}
}
Mise en page XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="me.imbishal.imageblur.ViewReport"
android:weightSum="1">
<LinearLayout
android:id="@+id/fold"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@drawable/profilepageback"
android:orientation="vertical">
<EditText
android:id="@+id/editText4"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginBottom="3dp"
android:background="@drawable/my_button"
android:ems="10"
android:inputType="textPersonName" />
<EditText
android:id="@+id/editText3"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginBottom="5dp"
android:background="@drawable/my_button"
android:ems="10"
android:inputType="textPersonName" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@drawable/just_border"
android:onClick="Click"
android:text="Button" />
</LinearLayout>
Quelle erreur stupide: (J'ai oublié de mettre LayoutParams pour ma mise en page Merci beaucoup @KingintheNorth –