package com.example.doitnow; import android.os.Bundle; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.ScrollView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; public class AIFragment extends Fragment { private EditText userInput; private Button sendButton; private LinearLayout chatContainer; private ScrollView scrollView; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_ai, container, false); userInput = view.findViewById(R.id.user_input); sendButton = view.findViewById(R.id.send_button); chatContainer = view.findViewById(R.id.chat_container); scrollView = view.findViewById(R.id.scrollView); sendButton.setOnClickListener(v -> { String inputText = userInput.getText().toString().trim(); if (!inputText.isEmpty()) { addMessage(inputText, 0xFFE6D6F3,true); // 使用者 addMessage("暫未接入 AI", 0xFFF0F0F0,false); // AI userInput.setText(""); scrollToBottom(); } }); return view; } private void addMessage(String text, int backgroundColor,boolean alignRight) { TextView messageView = new TextView(getContext()); messageView.setText(text); messageView.setTextSize(16); messageView.setPadding(20, 12, 20, 12); messageView.setBackgroundColor(backgroundColor); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); params.setMargins(0, 8, 0, 8); if (alignRight){ params.gravity= Gravity.END; }else{ params.gravity=Gravity.START; } messageView.setLayoutParams(params); chatContainer.addView(messageView); } private void scrollToBottom() { scrollView.post(() -> scrollView.fullScroll(View.FOCUS_DOWN)); } }