【发布时间】:2020-08-23 23:08:05
【问题描述】:
我可以就我的代码获得一些帮助吗?我需要红色区域垂直滚动。我需要黑色区域垂直和水平滚动。我还附上了一些 .java 代码和 .xml 代码。我尝试了不同的东西,但总体上无法重现效果。我读到你不能同时拥有两个滚动视图,而不改变孩子或其他东西。不过我不太明白这个说法。
感谢社区!
.xml 代码
<ScrollView
android:id="@+id/layout"
android:layout_width="324dp"
android:layout_height="822dp"
android:layout_marginEnd="4dp"
android:layout_marginRight="4dp"
android:layout_marginBottom="8dp"
android:fillViewport="true"
android:scrollbarStyle="outsideInset"
android:scrollbars="horizontal|vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0">
<HorizontalScrollView
android:id="@+id/horizontalView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dip"
android:scrollbars="horizontal|vertical">
<TableLayout
android:id="@+id/tableLayoutProduct"
android:layout_width="match_parent"
android:layout_height="match_parent"></TableLayout>
</HorizontalScrollView>
</ScrollView>`
.java代码
public class MainActivity extends AppCompatActivity {
private TableLayout tableLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
loadData();
}
private void initView() {
tableLayout = (TableLayout) findViewById(R.id.tableLayoutProduct);
}
private void loadData() {
List<Product> products = new ArrayList<Product>();
products.add(new Product("-50F", "6.1", "5.2", "29.2","18.7","13.5","17.9"));
products.add(new Product("-45F", "2.7", "8.0", "29.0", "16.9", "11.1", "16.0"));
products.add(new Product("-40F", "0.6", "11.0", "28.9", "14.8", "8.4", "13.8"));
products.add(new Product("-35F", "2.6", "14.4", "28.7","12.5", "5.3", "11.4"));
createColumns();
fillData(products);
}
private void createColumns() {
TableRow tableRow = new TableRow(this);
tableRow.setLayoutParams(new TableRow.LayoutParams(
TableRow.LayoutParams.WRAP_CONTENT,
TableRow.LayoutParams.WRAP_CONTENT));
// Sat Column
TextView textViewSat = new TextView(this);
textViewSat.setText("Sat Temp");
textViewSat.setTypeface(Typeface.DEFAULT, Typeface.BOLD);
textViewSat.setPadding(0, 0, 0, 0);
tableRow.addView(textViewSat);
// Ref1 Column
TextView textViewRef1 = new TextView(this);
textViewRef1.setText("R-22");
textViewRef1.setTypeface(Typeface.DEFAULT, Typeface.BOLD);
textViewRef1.setPadding(0, 0, 0, 0);
tableRow.addView(textViewRef1);
// Ref2 Column
TextView textViewRef2 = new TextView(this);
textViewRef2.setText("R-32");
textViewRef2.setTypeface(Typeface.DEFAULT, Typeface.BOLD);
textViewRef2.setPadding(0, 0, 0, 0);
tableRow.addView(textViewRef2);
// Ref3 Column
TextView textViewRef3 = new TextView(this);
textViewRef3.setText("R-123");
textViewRef3.setTypeface(Typeface.DEFAULT, Typeface.BOLD);
textViewRef3.setPadding(0, 0, 0, 0);
tableRow.addView(textViewRef3);
// Ref4 Column
TextView textViewRef4 = new TextView(this);
textViewRef4.setText("R-134a");
textViewRef4.setTypeface(Typeface.DEFAULT, Typeface.BOLD);
textViewRef4.setPadding(0, 0, 0, 0);
tableRow.addView(textViewRef4);
// Ref5 Column
TextView textViewRef5 = new TextView(this);
textViewRef5.setText("R-401a LIQ");
textViewRef5.setTypeface(Typeface.DEFAULT, Typeface.BOLD);
textViewRef5.setPadding(0, 0, 0, 0);
tableRow.addView(textViewRef5);
// Ref6 Column
TextView textViewRef6 = new TextView(this);
textViewRef6.setText("R-401a VAP");
textViewRef6.setTypeface(Typeface.DEFAULT, Typeface.BOLD);
textViewRef6.setPadding(0, 0, 0, 0);
tableRow.addView(textViewRef6);
tableLayout.addView(tableRow, new TableLayout.LayoutParams(
TableRow.LayoutParams.WRAP_CONTENT,
TableRow.LayoutParams.WRAP_CONTENT));
// Add Divider
tableRow = new TableRow(this);
tableRow.setLayoutParams(new TableRow.LayoutParams(
TableRow.LayoutParams.WRAP_CONTENT,
TableRow.LayoutParams.WRAP_CONTENT));
// Sat Column
textViewSat = new TextView(this);
textViewSat.setText("-----------");
textViewSat.setTypeface(Typeface.DEFAULT, Typeface.BOLD);
textViewSat.setPadding(0, 0, 0, 0);
tableRow.addView(textViewSat);
// Ref1 Column
textViewRef1 = new TextView(this);
textViewRef1.setText("-----------");
textViewRef1.setTypeface(Typeface.DEFAULT, Typeface.BOLD);
textViewRef1.setPadding(0, 0, 0, 0);
tableRow.addView(textViewRef1);
// Ref2 Column
textViewRef2 = new TextView(this);
textViewRef2.setText("-----------");
textViewRef2.setTypeface(Typeface.DEFAULT, Typeface.BOLD);
textViewRef2.setPadding(0, 0, 0, 0);
tableRow.addView(textViewRef2);
// Ref3 Column
textViewRef3 = new TextView(this);
textViewRef3.setText("----------");
textViewRef3.setTypeface(Typeface.DEFAULT, Typeface.BOLD);
textViewRef3.setPadding(0,0,0,0);
tableRow.addView(textViewRef3);
// Ref4 Column
textViewRef4 = new TextView(this);
textViewRef4.setText("----------");
textViewRef4.setTypeface(Typeface.DEFAULT, Typeface.BOLD);
textViewRef4.setPadding(0,0,0,0);
tableRow.addView(textViewRef4);
// Ref5 Column
textViewRef5 = new TextView(this);
textViewRef5.setText("----------");
textViewRef5.setTypeface(Typeface.DEFAULT, Typeface.BOLD);
textViewRef5.setPadding(0,0,0,0);
tableRow.addView(textViewRef5);
// Ref6 Column
textViewRef6 = new TextView(this);
textViewRef6.setText("----------");
textViewRef6.setTypeface(Typeface.DEFAULT, Typeface.BOLD);
textViewRef6.setPadding(0,0,0,0);
tableRow.addView(textViewRef6);
tableLayout.addView(tableRow, new TableLayout.LayoutParams(
TableRow.LayoutParams.WRAP_CONTENT,
TableRow.LayoutParams.WRAP_CONTENT));
}
private void fillData(List<Product> products) {
for (Product product : products) {
TableRow tableRow = new TableRow(this);
tableRow.setLayoutParams(new TableRow.LayoutParams(
TableRow.LayoutParams.WRAP_CONTENT,
TableRow.LayoutParams.WRAP_CONTENT));
tableRow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
TableRow currentRow = (TableRow) view;
TextView textViewId = (TextView) currentRow.getChildAt(0);
String id = textViewId.getText().toString();
Toast.makeText(getApplicationContext(), id, Toast.LENGTH_LONG).show();
}
});
// Sat Column
TextView textViewSat = new TextView(this);
textViewSat.setText(product.getSat());
textViewSat.setTypeface(Typeface.DEFAULT, Typeface.BOLD);
textViewSat.setPadding(0, 0, 0, 0);
tableRow.addView(textViewSat);
// Ref1 Column
TextView textViewRef1 = new TextView(this);
textViewRef1.setText(product.getRef1());
textViewRef1.setTypeface(Typeface.DEFAULT, Typeface.BOLD);
textViewRef1.setPadding(0, 0, 0, 0);
tableRow.addView(textViewRef1);
// Ref2 Column
TextView textViewRef2 = new TextView(this);
textViewRef2.setText(product.getRef2());
textViewRef2.setTypeface(Typeface.DEFAULT, Typeface.BOLD);
textViewRef2.setPadding(0, 0, 0, 0);
tableRow.addView(textViewRef2);
// Ref3 Column
TextView textViewRef3 = new TextView(this);
textViewRef3.setText(product.getRef3());
textViewRef3.setTypeface(Typeface.DEFAULT, Typeface.BOLD);
textViewRef3.setPadding(0, 0, 0, 0);
tableRow.addView(textViewRef3);
// Ref4 Column
TextView textViewRef4 = new TextView(this);
textViewRef4.setText(product.getRef4());
textViewRef4.setTypeface(Typeface.DEFAULT, Typeface.BOLD);
textViewRef4.setPadding(0, 0, 0, 0);
tableRow.addView(textViewRef4);
// Ref5 Column
TextView textViewRef5 = new TextView(this);
textViewRef5.setText(product.getRef5());
textViewRef5.setTypeface(Typeface.DEFAULT, Typeface.BOLD);
textViewRef5.setPadding(0, 0, 0, 0);
tableRow.addView(textViewRef5);
// Ref6 Column
TextView textViewRef6 = new TextView(this);
textViewRef6.setText(product.getRef6());
textViewRef6.setTypeface(Typeface.DEFAULT, Typeface.BOLD);
textViewRef6.setPadding(0, 0, 0, 0);
tableRow.addView(textViewRef6);
tableLayout.addView(tableRow, new TableLayout.LayoutParams(
TableRow.LayoutParams.WRAP_CONTENT,
TableRow.LayoutParams.WRAP_CONTENT));
}
}
}
【问题讨论】:
标签: java android-studio android-scrollview android-tablelayout