Bonjour à toutes et à tous,

Décidément, j'aurai toujours des problèmes avec les affichages.

Dans une application, si je dessine dans la fenêtre de base, tout se passe bien. Maintenant, je veux faire les mêmes dessin mais dans un scrollView. Bien que l'écran réponde aux sollicitations des touchés, aucun dessin n'apparaît. Voici le code utilisé :

A noter que ce même code mais en supprimant le scrollView, fonctionne très bien.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
	private ScrollView scrollSchema;
	private RelativeLayout planSchema;
	...
	public static Schema schema; // Surface sur laquelle sont posés les opérateurs
	private static Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
 
	@Override
	public void onCreate(Bundle savedInstanceState) {
 
		super.onCreate(savedInstanceState);
		...
		context = this;
		setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); // pour que lapplication ne soit pas détruite
		setContentView(R.layout.base_appli);
 
		scrollSchema = (ScrollView) findViewById(R.id.ScrollSchema);
		planSchema = (RelativeLayout) findViewById(R.id.PlanSchema);
		schema = new Schema(this);
		planSchema.addView(schema);
 
	public class Schema extends View { // Dessine le schéma
 
		public Schema(Context context) {
			super(context);
		}
 
		@Override
		protected void onDraw(Canvas cnv) {
			super.onDraw(cnv);
			for (int i = 0; i < listOpe.size(); i++)
				listOpe.get(i).traceOpe(cnv); // Dessin de chaque opérateur
		}
	}
 
	private void faireDessin() {
		schema.invalidate();
	}
et la partie .xml :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/ScrollSchema">
 
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:minHeight="480dp"
            android:minWidth="533dp"
            android:id="@+id/PlanSchema">
        </RelativeLayout>
    </ScrollView>
Si vous avez une idée du pourquoi du comment cela ne veut rien afficher ...

Cordialement.

Pierre